MVVM框架:以原生JS、Vue、Vuex为例图解MVVM框架

329 阅读1分钟

基础知识

浏览器渲染页面是从上往下解析HTML文件,根据html元素生成DOM树,根据引入的CSS文件生成CSS规则树,根据JS对DOM节点进行监听和操作。如下图:

此时,事件监听产生了对数据的操作,使得数据发生变化,但该变化是不会被浏览器关注到的,因此页面不会重新渲染。浏览器时刻关注的变量,有例如input的value,我们需要手动将变化的数据赋给这些被浏览器关注的变量,才能使得最新的数据在页面中展示出来。

未命名文件 (7).png

Vue的MVVM思想

整个过程看起来和原始JS的差不多,但要注意到,Model中的data是响应式的,能自动化地将修改的数据响应到模板上。这也就是MVVM思想的核心View和Model的数据双向绑定

11.png

Vuex的MVVM思想

Vuex的设计是为了方便多层嵌套的组件对数据的绑定,因此将组件的共享数据抽取出来放在全局中使用。Action和Mutation只是更改state的方式,并没有改变Vue的MVVM思想。其中,Action是更靠近View层的,因此写了较多的交互逻辑,而Mutation更靠近Model层,因此只写更改state的操作。

11 (1).png

相关地址

Vue官网的MVVM框架介绍:012.vuejs.org/guide/

Vue底层工作原理的简单介绍:Vue.js 3 Deep Dive with Evan You - YouTube

页面渲染介绍:developer.mozilla.org/zh-CN/docs/…