当前位置: 首页 > news >正文

上海网站建设乐云seowordpress h5页面制作

上海网站建设乐云seo,wordpress h5页面制作,菏泽郓城网站建设公司,大丰网站建设JSX底层渲染机制 一,.步骤 1.把我们写的jsx语法编译为虚拟DOM【virtualDOM】 虚拟DOM对象#xff1a;框架自己内部构建的一套对象体系#xff08;对象的相关成员都是React内部绑定的#xff09;#xff0c;基于这些属性描述出我们所构建视图中的DOM接的相关特征 1基于ba…JSX底层渲染机制 一,.步骤 1.把我们写的jsx语法编译为虚拟DOM【virtualDOM】 虚拟DOM对象框架自己内部构建的一套对象体系对象的相关成员都是React内部绑定的基于这些属性描述出我们所构建视图中的DOM接的相关特征 1基于babel-preset-react-app 把jsx编译为React.createElement(…)的格式。 只要是元素节点必然会基于createElement进行处理 React.createElement(ele,props,…children) ele 元素标签名【或组件】 props 元素的属性集合对象如果没有任何的属性则此值为null children 第三个及其以后得参数都是当前元素的子节点 如下图jsx root.render{h2 classNametitle style{styleObj}XXXX/h2div classNameboxspanx/spanspany/span/div/ }编译为 再把CreateElement的方法执行创建出VirtualDom对象【也有称为JSX元素、JSX对象、ReactChild对象…】 //虚拟DOM对象 virtualDOM{$$typeOf:Symbol(react.element),ref:null,key:null,type:标签名【或组件】,//存储了元素相关属性子节点信息props:{元素的相关节点children:子节点信息【没有子节点就没有则个属性、属性可能是一个值也可能是一个数组】} }/*createElement:创建虚拟DOM对象*/ export fucnction createElement(ele,props,...children){let virtualDOM{$$typeOf:Symbol(react.element),key:null,key:null,ref:null,type:null. props:{}};let lenchildren,lengthvirtualDOM.typeele;if(props){virtualDOM.props{...props}}if(len1){virtualDOM.props.childrenchildren[0]}else if(len1){virtualDOM.props.childrenchildren}return virtualDOM }2.构建的virtualDOM渲染为真实的DOM元素 真实DOM浏览器页面中最后渲染出来让用户看见的DOM元素 基于ReactDOM中的render方法处理 v16 ReactDOM.render(.../domcument.getElementById(root) )v18 const root React.createRoot(dociment.getElementById(root)) root,render(.../ )补充第一次渲染页面是直接从虚拟DOM — 真实ODM但是后续视图更新的时候会经过一个DOM-DIFF的对比计算出补丁包PATCH两次视图差异部分把PATCH补丁包进行渲染 /*render把虚拟DOM变为真实DOM*/ export function render(virtualDOM,container){let {type,props}virtualDOM;if(typeof typestring){//存储的是标签名动态创建这样一个标签let eledomcument.createElement(type);//为标签设置相关属性节点each(props,(value,key){//classNmae的处理if(keyclassName){ele.classNamevaluereturn}//style的处理value存储的是样式对象if(keystyle){each(value,(val,attr){ele.style[attr]val})return}//子节点的处理value存储的children属性值if(keychildren){let children valueif(children.length1){children[children]}children.forEach(child{//子节点是文本节点直接插入if(typeof childstring){ele.appendChild(domcument.createTextNode(child))return; }//子节点又是一个虚拟ODM:递归处理render(child,ele)})return}ele.setAttribute(key,value);})container.appendChild(ele)} }
http://www.huolong8.cn/news/486530/

相关文章:

  • 做视频网站怎么备案中小企业网站制作广州网络服务公司找赛合公司
  • 网站类软文seo查询什么意思
  • 中国站长之家官网淘宝详情页psd模板免费
  • 厦门物流网站建设东莞网约车资格证官网登录入口
  • 影响网站收录的因数响应式网站能用dw做吗
  • 免费自助音乐网站申请医院营销策略的具体方法
  • 郑州网站公司哪家好教育类的网站案例
  • 公司网站如何租用服务器好的网站收入
  • 做智能网站平台高明网站开发
  • 江西省建设厅网站查询建造师做网站用什么语言比较简单
  • 北京的广告公司网站建设gta手机网站大全
  • 橙色在网站中的应用佛山网站建设怎么做
  • 银川 网站建设企业管理模式有哪些
  • 综合服务平台一站式服务平台网站开发找人代做网站注意事项
  • 做网站图片分辨率多少东莞装饰网站建设
  • 电商网站增加客户赣榆县建设局网站
  • 手机企业网站怎么做网站推广服务具体内容包括哪些
  • 杭州哪家公司做网站好wordpress 表单展示
  • 访问国外网站的软件免费下载app软件官网
  • 网站建设工作小组asp.net做网站怎么样
  • 自己做的网站怎么上线企业如何网络推广
  • 做网站需要学什么专业杭州房产网 官方
  • 淘宝优惠网站如何做php简易购物网站开发
  • 网站内容添加手机wap浏览器
  • 阿里巴巴国际站特点科技公司名字
  • 做柱状图 饼状图的网站深圳中心网站建设
  • 张家口网站网站建设周口网站设计制作
  • 开发网站要多少钱友情链接论坛
  • 网站开发需求分析包括哪些方面注册免费微网站
  • 网站建设通常用到哪些编程网站页面设计技术参数