- 掌握 React 高阶组件与高阶函数:构建可复用组件的新境界
风茫
Reactreact.jsjavascript
一、引言在React开发中,代码复用性和逻辑分离是提高开发效率和维护性的重要手段。高阶组件(Higher-OrderComponent,HOC)和高阶函数(Higher-OrderFunction,HOF)是实现这一目标的两种强大工具。本文将详细介绍这两种技术的概念、应用场景及其实现方式,并通过具体示例帮助你更好地理解和应用它们。二、高阶函数(HOF)1.概念高阶函数是指以函数作为参数或返回值的函
- js map函数的使用
itwlz
javascript前端开发语言
1.概念map()方法定义在JavaScript的Array中,它返回一个新的数组。数组中的元素为原始数组调用函数处理后的值。注意:1.map()不会对空数组进行检测2.map()不会改变原始数组2.语法array.map(function(currentValue,index,arr),thisIndex)3.实例3.1把数组l里的每一项转为Number或String或Booleanletlis
- python捕获异常
青云游子
python
try:name="aaa"id="aaa"exceptExceptionase:print("任务报错")print(str(e))print(str(traceback.print_exc()))spark.sql("""insertintotabledim.aaaselect'1','666','{name}','{id}',null,null,null,null,current_times
- python+playwright自动化测试(三):事件等待机制
觅远
自动化测试pythonpython开发语言自动化
目录goto设置等待强制等待wait_for_timeoutwait_forwait_for_selectorwait_for_load_statewait_for_urlwait_for_eventwait_for_functionplaywright中的timeout默认为30s,timeout=30000,有时需要根据具体情况进行自定义调整。goto设置等待page.goto('https:
- 【嵌入式——QT】QT多线程编程
炯哈哈
qt开发语言嵌入式c++
这里介绍的是moveToThread的方式,继承QThread的方式可以参考我的另一篇文章【嵌入式——QT】QThread创建多线程编程实现首先创建一个类,但是这个类一定要继承QObjectSerialWorker.h#ifndefSERIALWORKER_H#defineSERIALWORKER_H#include#include#include#include#include#includec
- 小白学习Java第七天
qq_57406169
学习java数据库
一、单表PRIMARYKEY主键,不能重复,唯一确定一条记录(unique+notnull)表中的任何列都可以作为主键,只要它满足一下条件:1、任意两行都不具有相同的主键值2、每一行都必须具有一个主键值(主键列不允许空置NULL)3、主键列中的值不允许修改或更新主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行)AUTOINCREMENT自动增长varchar(10)char(10)区
- 海康威视H5player问题汇总大全
前端小码仔
海康视频海康H5player前端
由于除了要支持Windows平台,还要支持国产系统的平台,这时就用到了H5player,但是这个在使用调试的时候会遇到各种各样的问题,便在此分享一下,供大家分享!!!问题一:Unexpectedtoken‘<‘inputover1、检查html页面的引入2、确认szBasePath地址是否正确(注意:微前端乾坤下的路径别忘带子应用的前缀)3、如果以上配置都正确,且后端返回的路径没问题,请重新下载更
- 停止在 React 组件回调中使用箭头函数!
@大迁世界
react.jsjavascript前端ecmascript前端框架
在构建React应用时,许多开发者都喜欢使用箭头函数,因为它们简洁易用。但你知道吗,在组件回调中直接使用箭头函数可能会导致一些性能问题?在本文中,我们将分析这种情况发生的原因,并探讨你应该考虑的最佳实践。什么是箭头函数?在深入讨论最佳实践之前,我们快速回顾一下箭头函数。箭头函数是ES6引入的特性,它为JavaScript中的函数书写提供了更简短的语法。相比使用更冗长的function关键字,你可以
- react-quill报错Listener added for a ‘DOMNodeInserted‘ mutation event.Support for this event type has..
lryh_
插件react.js前端
1、删除node_modules和package-lock.json2、重装依赖npmi3、找到node_modules中quill==》dist==》quill.js文件中修改代码//_this.domNode.addEventListener('DOMNodeInserted',function(){});newMutationObserver(()=>{}).observe(_this.do
- JavaScript Symbol:独特标识符的深度解析
谢道韫689
javascript前端开发语言
一、引言在JavaScript的世界里,数据类型丰富多样,从常见的字符串、数字、布尔值,到较为特殊的null、undefined,每一种都在编程中扮演着不可或缺的角色。而Symbol,作为ES6引入的一种新的数据类型,犹如一颗独特的明珠,虽不像其他类型那样频繁出现在日常代码中,但在特定的场景下,却有着无可替代的重要性。或许你在日常开发中,曾遇到过属性名冲突的困扰,或者想要为对象添加一些隐藏的、不希
- linux内核态线程详解
ghx_echo
linux运维服务器
头文件:#include//wake_up_process()#include//kthread_create()、kthread_run()#include//IS_ERR()、PTR_ERR()1.创建并启动一个内核线程:方式一:structtask_struct*kthread_create(int(*threadfn(void*data),void*data,constchar*namef
- winform应用新建wpf控件后发生的初始化问题
小何程序员
winformwpfc#前端
问题描述严重性代码说明项目文件行禁止显示状态错误未知的生成错误“因为没有预加载,所以无法解析程序集“Microsoft.EntityFrameworkCore,Version=1.1.6.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”的依赖项。在使用ReflectionOnlyAPI时,必须通过ReflectionOnlyAssemblyRes
- Electron 开发者的 Tauri 2.0 实战指南:安全实践
在桌面应用开发中,安全性至关重要。相比Electron,Tauri2.0提供了更严格的安全模型和更完善的权限系统。本文将帮助你理解和实践Tauri的安全特性。权限系统对比Electron的安全模型在Electron中,我们通常这样处理安全://main.jsconst{app,BrowserWindow}=require('electron')functioncreateWindow(){cons
- javascript document例子
飞行codes
python的荒野javascript前端
document对象是JavaScript中非常核心的对象之一,它是DOM(DocumentObjectModel)的一部分,提供了丰富的属性和方法用于操作网页上的元素和内容。和文件相关操作,比如上传下载等。下载文件例如image.png:functiondownloadImage(){varlink=document.createElement('a');link.href="{{url_for
- 清晰度相关参数:MTF,SFR,MTF50,MTF50P 以及TVL的概念以及换算说明
无敌 喵星人
图像测试visualstudiocode
1)MTF概念说明MTF是ModulationTransferFunction的英文简称,中文为调制传递函数。是指调制度随空间频率变化的函数称为调制度传递函数。调制传递函数最初是为了说明镜头的能力。在各个摄像头镜头中经常采用MTF描述镜头的MTF曲线,表明镜头的能力。这些曲线是通过理想的测试环境下尽量减少其它系统对镜头的清晰度的衰减的情况下测试得出的。但是其实MTF也可以涵盖对整个成像系统的清晰度
- C# Linq查询 XML Object
Daniel799
C#
DemousingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Xml.Linq;namespaceLinqDemo{classProgram{staticvoidMain(string[]args){varInputA
- Rust调用Windows API制作进程挂起工具
红烧code
Rust操作系统rustwindows操作系统进程管理
一个sysinternals/pssuspend替代工具,用于在Windows上挂起/恢复指定PID的进程。目前只能使用未公开的系统API来实现,底层使用了ntdll.dll,完整项目见Github。usentapi::ntpsapi::{NtResumeProcess,NtSuspendProcess};usewinapi::{shared::ntdef::NULL,um::{processth
- 应届生Java面试50题线程篇(含解析)
「已注销」
java面试
什么是线程?答:线程是操作系统能够进行运算调度的最小单位,是程序执行流的最小单元。在Java中,可以通过实现Runnable接口或继承Thread类来创建线程。创建线程的方式有哪些?各自的优缺点是什么?继承Thread类:继承Thread类并重写run()方法来实现多线程。优点是简单易用,缺点是无法继承其他类,会破坏程序的封装性,而且无法共享代码。实现Runnable接口:实现Runnable接口
- matlab 程序将学生成绩管理的各项操作集成在一个 GUI 界面中,方便用户直观地对学生成绩进行操作和查看统计信息
pk_xz123456
MATLAB算法机器学习matlabjava前端
functionstudent_grades_gui()%创建图形界面f=figure('Position',[100,100,800,500
- CMake找不到Boost?
catxl313
c++开发语言1024程序员节
背景说明版本:cmake3.24.2/boost1.80.0环境:win11问题描述在CMakeList.txt中设置SET(BOOST_ROOT${CMAKE_SOURCE_DIR}/ext/boost})find_package(BoostREQUIREDCOMPONENTSthread)后报错CouldNOTfindBoost(missing:Boost_INCLUDE_DIRthread)
- [Python | CS基础 ]Python多线程`threading`和多进程`multiprocessing`
向日葵花籽儿
python语法python数据库
多线程和多进程的Python实现1.多线程实现1.1原理Python的多线程模块**threading**允许程序并发执行多个任务。由于全局解释器锁(GIL),Python的线程可能无法实现真正的并行执行,适合I/O密集型任务。1.2示例代码importthreadingimporttime#定义线程要执行的函数defprint_numbers(threadName,delay):count=0w
- PHP中的魔术函数
程序员阿凡提
PHP实战教程php开发语言魔术函数
PHP魔术函数是在某些情况下会自动调用的特殊函数,它们以双下划线`__`开头,以下是对常见PHP魔术函数的详细介绍:###构造函数和析构函数-**__construct()**:-这是一个构造函数,在创建类的新对象时会自动调用。它可以用于初始化对象的属性,执行必要的设置操作。```phpclassMyClass{ publicfunction__construct(){ echo"
- QT 通过QAxObject与本地应用程序读取Excel内容
梦里藍天
QT5qtexcel开发语言
首先在配置中加入QT+=axcontainer在开发过程中,经常需要与Excel文件进行交互,例如读取数据、写入数据或进行格式设置。Qt提供了一个强大的类QAxObject,通过它可以方便地操作Excel文件。QAxObjectexcel("ket.Application");if(excel.isNull()){QMessageBox::critical(this,"错误","没有发现Excel
- 2025 年 1 月 16 日 OTCBTC 币币交易行情解析
行情概览截至2025年1月15日22:00:12,OTCBTCToken(OTB币)的价格为0.02元人民币,约合0.0024美元,与前一日相比价格无变化,涨幅为0.00%。总市值暂未查到当日的准确数值,但根据其流通总量和价格可大致估算。24小时内最高价为0.00元,低价为0.00元,成交量达到54.06万,成交额为9434.40元,换手率为0.75%。交易对详情OTB币在Mercatox交易所有
- Jquery 、Js —— 获取当前年月日、星期几 、地点、天气!
爱吃果蔬的猫
Jqueryjquery前端javascript
最近的工作中的小需求,自己整理了下有关——日期与天气的代码:有其他需求的小伙伴可以去官网天气插件-心知天气html代码Date:Time:Day:js代码$(document).ready(function(){functionupdateDateTime(){constnow=newDate();constyear=now.getFullYear();constmonth=(now.getMon
- android AccessibilityService合法合规采集大众点评app商店商品详情(2024-09-02)
byc6352
androidjava前端数据采集点评app
免责任声明:任何可操作性的内容与本人无关,文章内容仅供参考学习,如有侵权损害贵公司利益,请联系作者,会立刻马上进行删除。一、原理介绍1、打开大众点评app商店publicvoidopen_shop(Contextcontext,Stringshop_id){Stringurl="dianping://gcshopshell?shopuuid="+shop_id;scroll_count=0;Uri
- JQ得到当前登录城市和天气
akfwzq7307
php
$(function(){findWeather();});functionfindWeather(){varcityUrl='http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js';$.getScript(cityUrl,function(script,textStatus,jqXHR){varcitytq=remote_ip_
- ORA-01033告警的乌龙事件
deadknight9
运维Oracle数据库
一、现象如下日志所示,数据库出现ORA-01033:ORACLE正在初始化或关闭报错,非常吓人,但数据库没有重启记录。ThuJun0902:35:232022Thread1advancedtologsequence7321(LGWRswitch)Currentlog#9seq#7321mem#0:+XXSDG/XXsdb/onlinelog/group_9.268.975690667Current
- 如何设计一个能根据任务优先级来执行的线程池
青秋.
Javajava开发语言
不同的线程池会选用不同的阻塞队列作为任务队列,比如FixedThreadPool使用的是LinkedBlockingQueue(有界队列),默认构造器初始的队列长度为Integer.MAX_VALUE,由于队列永远不会被放满,因此FixedThreadPool最多只能创建核心线程数的线程。假如需要实现一个优先级任务线程池的话,那可以考虑使用PriorityBlockingQueue(优先级阻塞队列
- Java并发编程:线程池优化实战指南
莫非技术栈
javajava开发语言
Java并发编程:线程池优化实战指南1.线程池的核心概念在Java并发编程中,线程池是管理线程的利器。它通过复用线程、减少线程创建和销毁的开销,显著提升了系统性能和资源利用率。Java的java.util.concurrent包提供了强大的线程池支持,尤其是ThreadPoolExecutor类,它是实现线程池的核心。1.1线程池的关键参数核心线程数(corePoolSize):线程池中始终保持存
- ztree异步加载
3213213333332132
JavaScriptAjaxjsonWebztree
相信新手用ztree的时候,对异步加载会有些困惑,我开始的时候也是看了API花了些时间才搞定了异步加载,在这里分享给大家。
我后台代码生成的是json格式的数据,数据大家按各自的需求生成,这里只给出前端的代码。
设置setting,这里只关注async属性的配置
var setting = {
//异步加载配置
- thirft rpc 具体调用流程
BlueSkator
中间件rpcthrift
Thrift调用过程中,Thrift客户端和服务器之间主要用到传输层类、协议层类和处理类三个主要的核心类,这三个类的相互协作共同完成rpc的整个调用过程。在调用过程中将按照以下顺序进行协同工作:
(1) 将客户端程序调用的函数名和参数传递给协议层(TProtocol),协议
- 异或运算推导, 交换数据
dcj3sjt126com
PHP异或^
/*
* 5 0101
* 9 1010
*
* 5 ^ 5
* 0101
* 0101
* -----
* 0000
* 得出第一个规律: 相同的数进行异或, 结果是0
*
* 9 ^ 5 ^ 6
* 1010
* 0101
* ----
* 1111
*
* 1111
* 0110
* ----
* 1001
- 事件源对象
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- MySql配置及相关命令
g21121
mysql
MySQL安装完毕后我们需要对它进行一些设置及性能优化,主要包括字符集设置,启动设置,连接优化,表优化,分区优化等等。
一 修改MySQL密码及用户
 
- [简单]poi删除excel 2007超链接
53873039oycg
Excel
采用解析sheet.xml方式删除超链接,缺点是要打开文件2次,代码如下:
public void removeExcel2007AllHyperLink(String filePath) throws Exception {
OPCPackage ocPkg = OPCPac
- Struts2添加 open flash chart
云端月影
准备以下开源项目:
1. Struts 2.1.6
2. Open Flash Chart 2 Version 2 Lug Wyrm Charmer (28th, July 2009)
3. jofc2,这东西不知道是没做好还是什么意思,好像和ofc2不怎么匹配,最好下源码,有什么问题直接改。
4. log4j
用eclipse新建动态网站,取名OFC2Demo,将Struts2 l
- spring包详解
aijuans
spring
下载的spring包中文件及各种包众多,在项目中往往只有部分是我们必须的,如果不清楚什么时候需要什么包的话,看看下面就知道了。 aspectj目录下是在Spring框架下使用aspectj的源代码和测试程序文件。Aspectj是java最早的提供AOP的应用框架。 dist 目录下是Spring 的发布包,关于发布包下面会详细进行说明。 docs&nb
- 网站推广之seo概念
antonyup_2006
算法Web应用服务器搜索引擎Google
持续开发一年多的b2c网站终于在08年10月23日上线了。作为开发人员的我在修改bug的同时,准备了解下网站的推广分析策略。
所谓网站推广,目的在于让尽可能多的潜在用户了解并访问网站,通过网站获得有关产品和服务等信息,为最终形成购买决策提供支持。
网站推广策略有很多,seo,email,adv
- 单例模式,sql注入,序列
百合不是茶
单例模式序列sql注入预编译
序列在前面写过有关的博客,也有过总结,但是今天在做一个JDBC操作数据库的相关内容时 需要使用序列创建一个自增长的字段 居然不会了,所以将序列写在本篇的前面
1,序列是一个保存数据连续的增长的一种方式;
序列的创建;
CREATE SEQUENCE seq_pro
2 INCREMENT BY 1 -- 每次加几个
3
- Mockito单元测试实例
bijian1013
单元测试mockito
Mockito单元测试实例:
public class SettingServiceTest {
private List<PersonDTO> personList = new ArrayList<PersonDTO>();
@InjectMocks
private SettingPojoService settin
- 精通Oracle10编程SQL(9)使用游标
bijian1013
oracle数据库plsql
/*
*使用游标
*/
--显示游标
--在显式游标中使用FETCH...INTO语句
DECLARE
CURSOR emp_cursor is
select ename,sal from emp where deptno=1;
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
begin
ope
- 【Java语言】动态代理
bit1129
java语言
JDK接口动态代理
JDK自带的动态代理通过动态的根据接口生成字节码(实现接口的一个具体类)的方式,为接口的实现类提供代理。被代理的对象和代理对象通过InvocationHandler建立关联
package com.tom;
import com.tom.model.User;
import com.tom.service.IUserService;
- Java通信之URL通信基础
白糖_
javajdkwebservice网络协议ITeye
java对网络通信以及提供了比较全面的jdk支持,java.net包能让程序员直接在程序中实现网络通信。
在技术日新月异的现在,我们能通过很多方式实现数据通信,比如webservice、url通信、socket通信等等,今天简单介绍下URL通信。
学习准备:建议首先学习java的IO基础知识
URL是统一资源定位器的简写,URL可以访问Internet和www,可以通过url
- 博弈Java讲义 - Java线程同步 (1)
boyitech
java多线程同步锁
在并发编程中经常会碰到多个执行线程共享资源的问题。例如多个线程同时读写文件,共用数据库连接,全局的计数器等。如果不处理好多线程之间的同步问题很容易引起状态不一致或者其他的错误。
同步不仅可以阻止一个线程看到对象处于不一致的状态,它还可以保证进入同步方法或者块的每个线程,都看到由同一锁保护的之前所有的修改结果。处理同步的关键就是要正确的识别临界条件(cri
- java-给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
bylijinnan
java
public class DeleteExtraSpace {
/**
* 题目:给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
* 方法1.用已有的String类的trim和replaceAll方法
* 方法2.全部用正则表达式,这个我不熟
* 方法3.“重新发明轮子”,从头遍历一次
*/
public static v
- An error has occurred.See the log file错误解决!
Kai_Ge
MyEclipse
今天早上打开MyEclipse时,自动关闭!弹出An error has occurred.See the log file错误提示!
很郁闷昨天启动和关闭还好着!!!打开几次依然报此错误,确定不是眼花了!
打开日志文件!找到当日错误文件内容:
--------------------------------------------------------------------------
- [矿业与工业]修建一个空间矿床开采站要多少钱?
comsci
地球上的钛金属矿藏已经接近枯竭...........
我们在冥王星的一颗卫星上面发现一些具有开采价值的矿床.....
那么,现在要编制一个预算,提交给财政部门..
- 解析Google Map Routes
dai_lm
google api
为了获得从A点到B点的路劲,经常会使用Google提供的API,例如
[url]
http://maps.googleapis.com/maps/api/directions/json?origin=40.7144,-74.0060&destination=47.6063,-122.3204&sensor=false
[/url]
从返回的结果上,大致可以了解应该怎么走,但
- SQL还有多少“理所应当”?
datamachine
sql
转贴存档,原帖地址:http://blog.chinaunix.net/uid-29242841-id-3968998.html、http://blog.chinaunix.net/uid-29242841-id-3971046.html!
------------------------------------华丽的分割线--------------------------------
- Yii使用Ajax验证时,如何设置某些字段不需要验证
dcj3sjt126com
Ajaxyii
经常像你注册页面,你可能非常希望只需要Ajax去验证用户名和Email,而不需要使用Ajax再去验证密码,默认如果你使用Yii 内置的ajax验证Form,例如:
$form=$this->beginWidget('CActiveForm', array( 'id'=>'usuario-form',&
- 使用git同步网站代码
dcj3sjt126com
crontabgit
转自:http://ued.ctrip.com/blog/?p=3646?tn=gongxinjun.com
管理一网站,最开始使用的虚拟空间,采用提供商支持的ftp上传网站文件,后换用vps,vps可以自己搭建ftp的,但是懒得搞,直接使用scp传输文件到服务器,现在需要更新文件到服务器,使用scp真的很烦。发现本人就职的公司,采用的git+rsync的方式来管理、同步代码,遂
- sql基本操作
蕃薯耀
sqlsql基本操作sql常用操作
sql基本操作
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:30:33 星期一
&
- Spring4+Hibernate4+Atomikos3.3多数据源事务管理
hanqunfeng
Hibernate4
Spring3+后不再对JTOM提供支持,所以可以改用Atomikos管理多数据源事务。Spring2.5+Hibernate3+JTOM参考:http://hanqunfeng.iteye.com/blog/1554251Atomikos官网网站:http://www.atomikos.com/ 一.pom.xml
<dependency>
<
- jquery中两个值得注意的方法one()和trigger()方法
jackyrong
trigger
在jquery中,有两个值得注意但容易忽视的方法,分别是one()方法和trigger()方法,这是从国内作者<<jquery权威指南》一书中看到不错的介绍
1) one方法
one方法的功能是让所选定的元素绑定一个仅触发一次的处理函数,格式为
one(type,${data},fn)
&nb
- 拿工资不仅仅是让你写代码的
lampcy
工作面试咨询
这是我对团队每个新进员工说的第一件事情。这句话的意思是,我并不关心你是如何快速完成任务的,哪怕代码很差,只要它像救生艇通气门一样管用就行。这句话也是我最喜欢的座右铭之一。
这个说法其实很合理:我们的工作是思考客户提出的问题,然后制定解决方案。思考第一,代码第二,公司请我们的最终目的不是写代码,而是想出解决方案。
话粗理不粗。
付你薪水不是让你来思考的,也不是让你来写代码的,你的目的是交付产品
- 架构师之对象操作----------对象的效率复制和判断是否全为空
nannan408
架构师
1.前言。
如题。
2.代码。
(1)对象的复制,比spring的beanCopier在大并发下效率要高,利用net.sf.cglib.beans.BeanCopier
Src src=new Src();
BeanCopier beanCopier = BeanCopier.create(Src.class, Des.class, false);
- ajax 被缓存的解决方案
Rainbow702
JavaScriptjqueryAjaxcache缓存
使用jquery的ajax来发送请求进行局部刷新画面,各位可能都做过。
今天碰到一个奇怪的现象,就是,同一个ajax请求,在chrome中,不论发送多少次,都可以发送至服务器端,而不会被缓存。但是,换成在IE下的时候,发现,同一个ajax请求,会发生被缓存的情况,只有第一次才会被发送至服务器端,之后的不会再被发送。郁闷。
解决方法如下:
① 直接使用 JQuery提供的 “cache”参数,
- 修改date.toLocaleString()的警告
tntxia
String
我们在写程序的时候,经常要查看时间,所以我们经常会用到date.toLocaleString(),但是date.toLocaleString()是一个过时 的API,代替的方法如下:
package com.tntxia.htmlmaker.util;
import java.text.SimpleDateFormat;
import java.util.
- 项目完成后的小总结
xiaomiya
js总结项目
项目完成了,突然想做个总结但是有点无从下手了。
做之前对于客户端给的接口很模式。然而定义好了格式要求就如此的愉快了。
先说说项目主要实现的功能吧
1,按键精灵
2,获取行情数据
3,各种input输入条件判断
4,发送数据(有json格式和string格式)
5,获取预警条件列表和预警结果列表,
6,排序,
7,预警结果分页获取
8,导出文件(excel,text等)
9,修