提供网站制作公司电话,个人性质的网站备案容易查,搜索引擎营销的原理是什么,美容设计网站建设关于 vue 的原理主要有两个重要内容#xff0c;分别是 mvvm 数据双向绑定原理#xff0c;和 响应式原理 MVC#xff08;Model-View-Controller#xff09;#xff1a; Model#xff08;模型#xff09;#xff1a;表示应用程序的数据和业务逻辑。View#xff08;视图分别是 mvvm 数据双向绑定原理和 响应式原理 MVCModel-View-Controller Model模型表示应用程序的数据和业务逻辑。View视图负责展示数据给用户并且接受用户的输入。Controller控制器负责处理用户的输入和操作当用户与页面产生交互的时候开始工作然后调用model 层修改modelview 和 model 应用了观察者模式当 model 层发生改变的时候它会通知有关的view 层更新【箭头方向统一的三角形】view - controller -model - view缺点view 层和 model 层 耦合在一起当项目逻辑复杂是会造成代码混乱。 MVPModel-View-Presenter Model模型同样表示应用程序的数据和业务逻辑。View视图负责展示数据给用户并且接受用户的输入。Presenter主持人将 model 的变化和view 的变化绑定在一起(1) 实现 view 和 model 同步更新(2) 实现 view 和 model 的解藕还包含了其他的响应逻辑view - presenter presenter - viewpresenter - model【没有model-presenter 的箭头】 MVVMModel-View-ViewModel Model模型同样表示应用程序的数据和业务逻辑。View视图负责展示数据给用户并且接受用户的输入。ViewModel视图模型负责将模型的数据转换为视图所需的格式并且处理视图的用户交互。视图模型通过数据绑定与视图进行连接。MVVM 模式通常利用双向数据绑定来实现视图和视图模型之间的通信。思想和 mvp 是相同的不过通过双向数据绑定将 view 和model 的同步更新自动化了。 model 发生变化viewmodel 会自动更新viewmodel 变化了 view 也会自动更新 vue 中 mvvm 数据双向绑定原理/响应式原理
本质【数据劫持】【发布订阅模式】 注意【发布订阅模式】和【观察者模式】是有区别的 数据劫持 Observer vue2 使用 Object.definedPropertyvue3 使用 proxy第一步就是把所有的变量变成响应式对象都能够触发对应的 getter 和 settervue 会创建一个 dep 对象存储当前属性的所有 watcher 对象【dep 类似于发布订阅中的那个存储所有事件的数组】【watcher 对象类似于发布订阅中的事件名称】【依赖收集】当属性的 getter 被访问时watcher 对象将会被添加到 dep 中【相当于订阅发布中的 on 方法】当属性的 setter 被调用时dep 中所有 watcher 对象将会被通知执行更新【相当于发布订阅中的 emit 方法】在数据劫持的步骤进行依赖收集observer 监听自己的 model 数据变化compile 模版编译 将vue模版编译成渲染函数【h 函数】vue 将模版中的数据绑定语法如 {{}} 和 v-model转换为对数据的 getter/setter 的调用对每个指令对应的节点绑定更新函数【相当于发布订阅中的回调函数】添加监听数据的订阅者数据变动时收到通知更新视图Watcher 监听器 对应发布/订阅模式中的订阅者【就是 on(change-name, fn) 中的 change-name这个方法】在自身实例化时往属性订阅器 dep 里添加自己自身有一个更新函数dep.notice 通知时调用自身的 update 方法并触发 compile绑定的回调利用 watcher 搭起 observer 和 compile 之间的通信桥梁达到 数据变化 - 视图更新视图交互变化- 数据 model 变化的双向绑定效果