vue中一个组件模板为什么只能由一个根元素
根本
其实就是因为树状
数据结构需要有一个根
,作为遍历的起使点。
- 从html的构建上来说:
vue通过这个1个根节点来递归遍历整个树下的所有节点并处理为 Virtual Dom,最后再渲染成真正的 HTML,插入在要挂载的位置。
- 从查找和遍历的角度来说:
如果有很多“根”,那么我们的查找和遍历的效率会很低。
- 从虚拟DOM比对来说:
Diff算法不支撑多入口的结构,为了保证计算的性能也需要我们仅有一个节点作为入口
技术上,取决于diff算法的编写方式。显然可以对其进行更新,但是需要对当前算法进行重大更改(React在完全重写期间进行了更改)