老师, 想问一下现在问MVVM需要讲一下MVC和MVP吗?
来源:4-3 如何理解MVVM
沧海的雨季
2020-04-19
看了很多讲MVVM的面试题, 都会先讲一下MVC, MVP, 而这里先讲组件化。。。
这块儿不知道怎么答比较好。。 下面是我听课记得笔记, 你看这样答可以吗?
首先很久之前就有组件化的概念, 使用 asp jsp php 就可以。node.js
中也有类似的组件化。Vue和React搬过来,做了一个创新:数据驱动视图。对比 Vue, React 组件化
但是, 传统组件它只是静态的渲染, 也就是说我们想显示谁的个人信息, 就要在后端拼接完数据去渲染。 渲染完页面就形成了,
不会再去改变了。你再需要去改需要自己去操作 DOM。所以当时 jQuery 是很流行的。因为操作 DOM 很多。有了 vue 之后, 使用数据驱动视图。 vue 可以通过 MVVM 模式执行的数据驱动视图。我们不再去操作 DOM, 我们想改什么地方,
直接去改 vue 里的数据就可以了。然后 vue
框架本身帮我们根据数据重新渲染视图。这一点是跟传统组件本质的区别。也正是因为这一点,让我们做 vue 开发的时候,
更加关注于数据。所谓数据也就是更加关注业务逻辑。而不是一直操作 DOM。
- M: Model 层 (vuex,data)
- V:View 层 (视图)
- VM: ViewModel 层
View 层通过 ViewModel 和 Model 做关联,像监听事件,监听指令等等。
在 Model 修改的时候,就能立刻执行 View 的渲染,View 层里面有什么点击事件,各种 DOM 事件监听的时候, 都可以去修改
Model 这一层的数据。所以说这就是数据驱动视图。通过修改 Model 数据去驱动视图 View。这个视图不用我们亲自操作。
解题思路:
MVVM 要能把图画出来,并且结合代码来讲清楚。在解释 MVVM 时要把组件化和数据驱动视图也讲出来,会更全面一些。
1回答
-
你这样解释,是对组件化和 mvvm 的比较详细的解释。如果问到 mvc ,你还需要再查一下 mvc 的知识。和 mvvm 相比,它的 c 及 controller 是需要单独解释的。
可以先查一查,有啥问题再来回复。
012020-04-19
相似问题