从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章主要为大家展示了Vue中template为什么有且只能一个root,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
创新互联公司是一家集网站建设,璧山企业网站建设,璧山品牌网站建设,网站定制,璧山网站建设报价,网络营销,网络优化,璧山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。引言
今年, 疫情 并没有影响到各种面经的正常出现,可谓是络绎不绝(学不动...)。然后,在前段时间也看到一个这样的关于 Vue
的问题, 为什么每个组件 template 中有且只能一个 root?
可能,大家在平常开发中,用的较多就是 template
写 html
的形式。当然,不排除用 JSX
和 render()
函数的。但是,究其本质,它们最终都会转化成 render()
函数。然后,再由 render()
函数转为 Vritual DOM
(以下统称 VNode
)。而 render()
函数转为 VNode
的过程,是由 createElement()
函数完成的。
因此,本次文章将会先讲述 Vue
为什么限制 template
有且只能一个 root
。然后,再分析 Vue
如何规避出现多 root
的情况。那么,接下来我们就从源码的角度去深究一下这个过程!
一、为什么限制 template 有且只能有一个 root
这里,我们会分两个方面讲解,一方面是 createElement()
的执行过程和定义,另一方面是 VNode
的定义。
1.1 createElement()
createElement()
函数在源码中,被设计为 render()
函数的参数。所以 官方文档 也讲解了,如何使用 render()
函数的方式创建组件。
而 createElement()
会在 _render
阶段执行:
... const { render, _parentVnode } = vm.$options ... vnode = render.call(vm._renderProxy, vm.$createElement);
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图