vue官网的文档也看了几遍了,其中一个创建vue实例的章节提到:
虽然没有完全遵循 MVVM 模型,但是 Vue 的设计也受到了它的启发。因此在文档中经常会使用 vm (ViewModel 的缩写) 这个变量名表示 Vue 实例。
思考很久,在我理解:
model:也就是vue代码的数据部分,体现在具体的代码中就是vue实例/组件的选项data,prop甚至vuex的state这些
view :也就是程序界面部分,或者说DOM,UI
viewModel:按照上面的说法,实际就是vue实例或vue组件。
vue遵循mvvm部分的情形就是,vue实例/组件作为应用的“中介”,将应用的界面view与程序的数据model进行了关联。所谓的双向绑定实际就是viewmodel和model之间的“实时镜像”。
不知道这么理解对不对。
我今天看到一个回答说vue里面有个ref属性可以对dom进行直接操作,所以违背了MVVM思想,所以官方称:虽然没有完全遵循 MVVM 模型。不知道对不对