vue面试题--vue原理

Vue原理包括哪些?

1.组件化和MVVM
2.响应式原理
3.vdom 和 diff 算法
4.模板编译
5.组件渲染过程
6.前端路由

组件化基础

1.很久以前”的组件化
asp jsp php 已经有组件化
nodejs 中已有类似组件化
2.数据驱动视图-Vue MVVM
在这里插入图片描述

mvvm M☞model V☞View VM☞ViewModel
3.数据驱动视图-React setStata

Vue 响应原理

组件化data的数据一旦变化,立刻触发视图的更新
1.核心 API-Object,defineProperty用法
在这里插入图片描述

缺点
1.深度监听,需要递归到底 ,计算量大
2.无法监听新增属性/删除属性

虚拟DOM(virtual DOM) 和 diff

1.vdom是实现vue 和React的重要基石(vue React是数据驱动试图)
vdom可以把计算转移为js计算
vdom 用js模拟dom结构
在这里插入图片描述
snabbdom是一个简易的实现vdom功能的库,vdom里面有两个核心的API,一个是h函数,一个是patch函数。前者是用来生成vdom对象(vue中使用render函数,将真实的节点转换成vnode),后者是用做vdom之间的对比以及将vdom挂载到真实的dom上。vue就是因为其使用了snabbdom而有更优异的性能。
2.diff算法是vdom中最核心的
diff算法过程
在这里插入图片描述 比较原理: 1.只比较同一级别,不跨级比较 2.两者相同时,则认为是相同节点 ,不会深度比较 具体详情:https://www.cnblogs.com/wind-lanyan/p/9061684.html