在面试的过程中,可能也会被问到对虚拟dom的理解,像这种面试题是比较宽泛的,面试官想知道你到底知道多少?既然是理解
,那就只能是知无不言言无不尽,尽量组织下语言多说点,这样才显得专业素养比较高,接下来,我来谈谈自己的理解,切记不要去背,一定要理解之后,用自己的语言来描述出来。
我们可以从以下四个方面来回答:
什么是虚拟dom
虚拟dom本质上就是一个普通的JS对象,用来描述视图上应该有哪些界面结构,并不生成界面。我们可以在生命周期「mounted阶段」打印一下this._vnode
,如下:
描述了标签为div
、有哪些属性
、以及有哪些子元素
等等,它通过普通的js对象这种形式来描述页面上应该有哪些东西,但并不会生成界面。
在vue中,每个组件都有一个render函数,每一个render函数都会返回一个虚拟dom数,这也就意味着每个组件都对应一棵虚拟DOM树。
为什么需要虚拟dom
这个主要是由vue框架结构所决定的,在vue中&