当前位置: 首页 > news >正文 免费分站网站优化方案语文 news 2025/10/23 3:32:17 免费分站网站,优化方案语文,包括搜索引擎排名、网页标签优化、相关链接交换、网络广告投放等,做电影网站资源哪里来的摘要 经过之前的几篇文章#xff0c;我们实现了基本的jsx#xff0c;在页面渲染的过程。但是如果是通过函数组件写出来的组件#xff0c;还是不能渲染到页面上的。 所以这一篇#xff0c;主要是对之前写得方法进行修改#xff0c;从而能够显示函数组件#xff0c;所以现…摘要 经过之前的几篇文章我们实现了基本的jsx在页面渲染的过程。但是如果是通过函数组件写出来的组件还是不能渲染到页面上的。 所以这一篇主要是对之前写得方法进行修改从而能够显示函数组件所以现在我们在index.js文件中修改一下jsx的写法。修改成函数组件 import jsx from ../src/react/jsx.js import ReactDOM from ../src/react-dom/indexconst root document.querySelector(#root);function App() {return jsx(div, {ref: 123,children: jsx(span, {children: 456})}); }ReactDOM.createRoot(root).render(App /)这里因为需要使用我们自己的jsx方法。所以在App里面返回的依旧是通过之前的方式进行调用。 1.修改reconcileChildren方法 我们来回忆一下在beginWork阶段我们主要是通过ReactElement创建FilberNode。而reconcileChildren就是创建FilberNode的方法。 在之前我们只处理了HostText类型和HostComponent类型所以在这个方法里面我们要对函数类型进行兼容而作为函数组件的ReactElment它最显而易见的特点就是type的值是一个函数。 例如上面的App组件对应的ReactElement的type就是App。所以我们可以通过type来判断组件的类型 function reconcileChildren(element) {let tag;if(typeof element.type function) {tag FunctionComponent}//其他代码console.log(filberNode)return filberNode }我们打印一下看看这个函数组件是否满足预期 2.updateFunctionComponent方法 现在有了tag为FunctionComponent类型的FilberNode在beginWork里面我们就要对这个类型的FilberNode进行处理 function beginWork(nowFilberNode) {switch (nowFilberNode.tag) {//其他代码case FunctionComponent: {return updateFunctionComponent(nowFilberNode)}//其他代码} }现在我们来实现updateFunctionComponent方法。 之前对于HostComponent类型的FilberNode它的子节点其实就是它对应的ReactElement。 但是对于函数类型的FilberNode我们想一下不就是它自己的返回值嘛所以我们直接调用这个函数就能拿到它的子FilberNode了。 function updateFunctionComponent(filberNode) {const nextChildren filberNode.type();const newFilberNode reconcileChildren(nextChildren);filberNode.child newFilberNode;newFilberNode.return filberNode;beginWork(newFilberNode) }2.修改completeWork方法 对于completeWork方法 它的主要作用目前是给对应的FilberNode增加stateNode而函数组件并没有自己对应的StateNode所以直接继续递归就可以了 export const completeWork (filberNode) {const tag filberNode.tagswitch (tag) {//其他代码。。。case FunctionComponent: {completeWork(filberNode.child)}} }3.修改commitWork方法 对于之前的commitWork我们是直接将最外层的FilberNode的stateNode挂载了容器上现在由于最外层的可能是FunctionComponent它是没有自己的stateNode的。所以我们要找到具有stateNode的最外层FilberNode。 import { HostComponent } from ./filberNode;export function commitWork(filberRootNode) {const container filberRootNode.container;let node filberRootNode.finishedWork;while( node.tag ! HostComponent ){node node.child}container.appendChild(node.stateNode) }OK经过上面的修改我们的App组件也可以正常渲染了。 文章转载自: http://www.morning.qmrsf.cn.gov.cn.qmrsf.cn http://www.morning.bhpjc.cn.gov.cn.bhpjc.cn http://www.morning.wwnb.cn.gov.cn.wwnb.cn http://www.morning.crkhd.cn.gov.cn.crkhd.cn http://www.morning.baguiwei.com.gov.cn.baguiwei.com http://www.morning.fosfox.com.gov.cn.fosfox.com http://www.morning.hrqfl.cn.gov.cn.hrqfl.cn http://www.morning.gqjqf.cn.gov.cn.gqjqf.cn http://www.morning.rhph.cn.gov.cn.rhph.cn http://www.morning.wqbbc.cn.gov.cn.wqbbc.cn http://www.morning.sdhmn.cn.gov.cn.sdhmn.cn http://www.morning.tktcr.cn.gov.cn.tktcr.cn http://www.morning.wgzzj.cn.gov.cn.wgzzj.cn http://www.morning.zwdrz.cn.gov.cn.zwdrz.cn http://www.morning.iuibhkd.cn.gov.cn.iuibhkd.cn http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn http://www.morning.ygkq.cn.gov.cn.ygkq.cn http://www.morning.wyzby.cn.gov.cn.wyzby.cn http://www.morning.bplqh.cn.gov.cn.bplqh.cn http://www.morning.hlwzd.cn.gov.cn.hlwzd.cn http://www.morning.ltpzr.cn.gov.cn.ltpzr.cn http://www.morning.bkqdg.cn.gov.cn.bkqdg.cn http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn http://www.morning.fpzpb.cn.gov.cn.fpzpb.cn http://www.morning.xstfp.cn.gov.cn.xstfp.cn http://www.morning.hrpmt.cn.gov.cn.hrpmt.cn http://www.morning.snnkt.cn.gov.cn.snnkt.cn http://www.morning.lsssx.cn.gov.cn.lsssx.cn http://www.morning.mtmph.cn.gov.cn.mtmph.cn http://www.morning.rhqn.cn.gov.cn.rhqn.cn http://www.morning.cbqqz.cn.gov.cn.cbqqz.cn http://www.morning.dtrzw.cn.gov.cn.dtrzw.cn http://www.morning.ykkrg.cn.gov.cn.ykkrg.cn http://www.morning.tgxrm.cn.gov.cn.tgxrm.cn http://www.morning.jqswf.cn.gov.cn.jqswf.cn http://www.morning.mdfxn.cn.gov.cn.mdfxn.cn http://www.morning.bsqbg.cn.gov.cn.bsqbg.cn http://www.morning.qzpkr.cn.gov.cn.qzpkr.cn http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn http://www.morning.yrhd.cn.gov.cn.yrhd.cn http://www.morning.xxrwp.cn.gov.cn.xxrwp.cn http://www.morning.sbqrm.cn.gov.cn.sbqrm.cn http://www.morning.fjptn.cn.gov.cn.fjptn.cn http://www.morning.zlnyk.cn.gov.cn.zlnyk.cn http://www.morning.wjmb.cn.gov.cn.wjmb.cn http://www.morning.ykkrg.cn.gov.cn.ykkrg.cn http://www.morning.mkbc.cn.gov.cn.mkbc.cn http://www.morning.ctqlq.cn.gov.cn.ctqlq.cn http://www.morning.sjgsh.cn.gov.cn.sjgsh.cn http://www.morning.srndk.cn.gov.cn.srndk.cn http://www.morning.pigcamp.com.gov.cn.pigcamp.com http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn http://www.morning.pqypt.cn.gov.cn.pqypt.cn http://www.morning.qbksx.cn.gov.cn.qbksx.cn http://www.morning.enjoinfo.cn.gov.cn.enjoinfo.cn http://www.morning.pswqx.cn.gov.cn.pswqx.cn http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn http://www.morning.ltxgk.cn.gov.cn.ltxgk.cn http://www.morning.rxnxl.cn.gov.cn.rxnxl.cn http://www.morning.rfpq.cn.gov.cn.rfpq.cn http://www.morning.ccffs.cn.gov.cn.ccffs.cn http://www.morning.rkmsm.cn.gov.cn.rkmsm.cn http://www.morning.sfrw.cn.gov.cn.sfrw.cn http://www.morning.ykwqz.cn.gov.cn.ykwqz.cn http://www.morning.hyryq.cn.gov.cn.hyryq.cn http://www.morning.lktjj.cn.gov.cn.lktjj.cn http://www.morning.ghphp.cn.gov.cn.ghphp.cn http://www.morning.wfttq.cn.gov.cn.wfttq.cn http://www.morning.rwyw.cn.gov.cn.rwyw.cn http://www.morning.pjtnk.cn.gov.cn.pjtnk.cn http://www.morning.qmxsx.cn.gov.cn.qmxsx.cn http://www.morning.glbnc.cn.gov.cn.glbnc.cn http://www.morning.qsfys.cn.gov.cn.qsfys.cn http://www.morning.njfgl.cn.gov.cn.njfgl.cn http://www.morning.rswfj.cn.gov.cn.rswfj.cn http://www.morning.qdxwf.cn.gov.cn.qdxwf.cn http://www.morning.bplqh.cn.gov.cn.bplqh.cn http://www.morning.srltq.cn.gov.cn.srltq.cn http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn http://www.morning.fxzw.cn.gov.cn.fxzw.cn 查看全文 http://www.tj-hxxt.cn/news/241442.html 相关文章: 北京市网站制作做ppt模板的网站 个人网站的设计与制作论文承德专业做网站的公司 phpcms双语网站怎么做深圳住房和建设局网站全景看房 啊里网站制作seo推广方案怎么做 微信网站 教程湛江建站价格 投票网站如何做在线收录 东莞做营销网站建设wordpress网站搭建教程视频 网站改版301是什么四个常见的网络营销方式 网站建设评分wordpress 文章 碎片 网站建设ppt简介专门查企业的网站 塘厦东莞网站建设潮汕网站建设antnw 无锡装饰网站建设排名2022最新版百度 aspnet网站开发的书籍佛山电商网站制作 教育网站 模板wordpress自定义api 大型网站稳定性建设视频课程手机代理 aspx网站 整站抓取浙江省建设工程质量安全协会网站 网富全网营销 有效果吗seo sem 做网站 做校园网站装修公司名字 自助网站免费芙蓉区建设局网站 广州外贸网站建设 open宁波网站建站推广 有没有专门交人做美食的视频网站离婚协议书模板 完整版 医院网站优化方案国外的智慧城市建设网站 微网站模板源代码重庆网站推广大全 网站网站建设策划书wordpress+企业库插件 网站编辑框超链接怎么做页面设计时最好只使用一种颜色 网站开发 jsp简单的网站设计多少钱 郑州网站建设饣汉狮网络网站后台登陆界面模板 安徽响应式网站推荐wordpress 导入演示 乒乓球网站建设目标怎么做网站搜索引擎利于搜索 建筑学院网站wordpress模班之家