一、虚拟DOM本质,模板本质,组件树和DOM树,数据拦截的本质

一、虚拟DOM本质

1.真实DOM原理:是由JS引擎创建DOM后,识别为API,发送到浏览器内核中,由渲染主线程进行渲染,最终将结果返回给JS引擎。

2.什么是虚拟DOM:就是JS对象,是创建DOM对象是在JS引擎终进行的。

二、模板的本质

1、流程:进行了模板编译器最终生成了模板(解析器-模板AST-转换器-JS AST-生成器(render)-编译器)

2、在什么时候开始编译:打包的时候,运行代码的时候

三、组件树和DOM树:

1、什么是组件树:相关联的组件称为组件树

2、什么是DOM树:一个个组件

3、为什么 Vue 中既有响应式,又有虚拟 DOM 以及 diff 算法:

  在vue1,2中涉及到了watcher,模板中每次引用一个,就会生成一个watcher,

      为了解决这个问题,后面vue变更了逻辑,在vue2,vue3中给每一个组件生成一个watcher,

   不过会造成一个问题:不知道这个组件里面具体那个位置发生了变更,为了解决这个问题,就用虚拟dom的diff算法解决这个问题。

四、数据拦截的本质:

1、作用:在突然需要给某个对象方法配置属性,使用数据拦截方法进行操作,好处是有很多提供的api方法(比如:枚举方法,set,get)

2、 在vue1,vue2中提供的方法是:object.defineProperty,而在vue3提供的方法是proxy(客户使用代理的方法去修改) 

3、相同点:1、都可以进行对对象拦截;2.可以对两者读写拦截;3.可以进行深度拦截

4、不同点:1.object.defineProperty适用于特定的数据结构进行读写操作,而proxy针对的对象(读写,赋值,删除,原型,函数调用都支持)

 

posted on 2024-11-12 21:32  爱前端的小魏  阅读(1)  评论(0编辑  收藏  举报

导航