一、vue的原理:
vue是m-v-vm模式,即model - view - viewmodel,通过viewmodel作为中间层也就是VM的实例进行数据的双向绑定与变化,
1.创建虚拟Dom树, 也就是Document.createDocumentFragment()方法创建虚拟Dom树
2.一旦发现数据发生变化,会通过Object.defineProperty定义的数据拦截,截取到数据的变化
3.通过订阅者-发布者模式,触发watcher(观察者),从而改变虚拟Dom 中的数据
4.最后更新虚拟Dom的元素值从而改变最后渲染Dom树 的值,完成舒安乡绑定。
数据的双向绑定原理:也就是数据劫持,通过Object.definePropertotype()方法实现,根据此方法中的get/set 对数据进行设置,在通过
observer 、compile、watcher 以及订阅者、发布者之间的关系对数据进行绑定、监听、响应实现数据双向绑定。
二、什么是MVVM,与MVC的区别?
mvvm是一种设计思想,是model 、view 、viewmodel的缩写,viewModel作为数据层model和视图层view的桥梁把他们连接起来,
是同步数据层和视图层的一个对象,
MVVM与MVC的区别:她俩都是一种设计思想,区别在于MVVM是主动的MVC,是在MVC的基础上把controller演变成了viewmodel,解决了
大量的Dom操作,是渲染更加快速,提高性能
三、怎么理解单项数据流?
这个概念出现在组件通信