mvvm是什么
所谓的MVVM其实就是Model、View 和ViewModel
- Model:模型层(数据层),主要用于保存一些数据
- View: 视图层,主要用于将后端数据借助各种元素呈现给用户,同时也可提供用户操作的入口
ViewModel:视图模型层:该层也是mvvm中的核心层,主要用于作为Model和View两个层的数据连接层,负责两个层之间的数据传递。
1、观察对象,给对象增加 Object.defineProperty
- 2、vue的特点就是新增不存在的属性不会给该属性添加 get 、 set 钩子函数。
- 3、深度响应。循环递归遍历 data 的属性,给属性添加 get , set 钩子函数。
- 4、每次赋予一个新对象时(即调用 set 钩子函数时),会给这个新对象进行数据劫持( defineProperty )。简单来说就是利用 Object.defineProperty(),并且把内部解耦为 Observer, Dep, 并使用 Watcher 相连。