-
Notifications
You must be signed in to change notification settings - Fork 3
1StepEngineer edited this page Aug 26, 2020
·
11 revisions
1. 体积小 压缩后 33k
2. 更高运行效率 基于虚拟dom。一种预先通过js进行计算,把最终dom操作计算出来并优化的技术,由于这个dom操作属于预处理操作,并没有真是操作dom,所以叫做虚拟dom。
3. 双向数据绑定 开发者不用操作dom,数据变,视图变
4. 生态丰富,学习成本低
MVVM全称是Model-View-ViewModel。 Vue是以数据驱动视图,Vue自身将DOM和数据进行绑定,一旦创建绑定,DOM和数据将保持同步。 ViewModel是Vue的核心,它是Vue的一个实例。Vue实例时作用域某个HTML元素上的这个HTML元素可以是body,也可以是某个id所指代的元素。
参考:http://www.cnblogs.com/canfoo/p/6891868.html
通过数据劫持和发布者-订阅者模式方式来实现的。
数据劫持:通过Object.defineProperty实现,利用set和get方法,进行数据的劫持,就可以在set函数里添加dom赋值的代码。
发布者-订阅者模式:
参考: https://segmentfault.com/a/1190000010336178

| Vue | react | angular | |
|---|---|---|---|
| 学习成本 | -- | jsx、es6 | typescript、es6 |
| 思想 | Virtual DOM 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件。 将其他功能如路由和全局状态管理交给相关的库 |
Virtual DOM 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件。 将其他功能如路由和全局状态管理交给相关的库 |
脏检查 |
| 生态系统 | 🏆🏆🏆 | 🏆🏆🏆🏆 | 🏆🏆🏆 |
| 运行性能 | 🏆🏆🏆🏆 | 🏆🏆🏆🏆 | 🏆🏆 |
| 指令 | 思想参考于ng 指令与组件区分 |
指令组件都是由指令完成 |
v-show:指令是通过修改元素的display属性让其显示或者隐藏
v-if:直接销毁和重建DOM达到让元素显示和隐藏的效果
包裹动态组件时,会缓存不活动的组件实例,主要用于保留组件状态或避免重新渲染。
比如有一个列表和一个详情,那么用户就会经常执行打开详情=>返回列表=>打开详情…这样的话列表和详情都是一个频率很高的页面,那么就可以对列表组件使用进行缓存,这样用户每次返回列表的时候,都能从缓存中快速渲染,而不是重新渲染。
