M:Model数据模型
V:View视图
VM:ViewModel视图模型
Vue也是借鉴了MVVM的思想
在Vue中,M就是data,V指挂载点,而Vue实例本身就是一个VM
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>初识MVVM分层思想</title>
<script src="../js/vue2/vue.js"></script>
</head>
<body>
<!--
1. MVVM 是什么?
M: Model (模型/数据)
V: View (视图)
VM: ViewModel (视图模型) - VM 是 MVVM 中的核心部分。(它起到一个非常重要的作用。)
MVVM 是目前前端开发流行的并非常常见的开发架构模式。
目前前端的大部分主流框架都实现了这个 MVVM 模型。例如 Vue、React 等。
2. Vue 是基于 MVVM 吗?
没有完全完全遵循 MVVM 模型,但是 Vue 的设计思想中受到了它的启发。
Vue框架本身也是存在的 MVVM 思想的。
3. MVVM 模型中为什么要将 Model 和 View 进行分离?为什么要分离?
假如你使用传统的 JavaScript 代码写项目:
在传统的项目中,我们经常使用 document.getElementById/view/等原生的操作 DOM 元素的 JS 代码。
如果数据发生任意的改动,接下来我们需要编写大量操作 DOM 的代码。
将 Model 和 View 分离之后,出现了一个 VM 层。这个 VM 层的责任活给做了。
也就是说,当 Model 发生变化之后,VM 自动去更新 View。
VM 自动去更新 Model。我们再也不需要编写操作 DOM 的 JS 代码了,开发效率提高了很多。
-->
<!-- 容器 -->
<!-- View -->
<div id="app">
消息:<input type="text" v-model="msg">
</div>
<script>
//Vue实例就是 VM ViewModel
new Vue({
el: '#app',
//这个就是Model
data: {
msg: 'Hello Vue'
}
})
</script>
</body>
</html>