vue是MVVM架构的实现者。MVVM是源自于MVC模式的。

Vue.js就是MVVM中的ViewModel层的实现者
在MVVM架构中,是不允许数据和视图直接通信的,只能通过ViewModel来通信,而ViewModel就是定义了一个 Observer观察者。
ViewModel能够观察到数据的变化,并对视图对应的内容进行更新.
ViewModel 能够监听到视图的变化,并能够通知数据发生改进
至此,我们就明白了,Vue.js就是一个 MVVM的实现者,他的核心就是实现了DOM监听与数据绑定。

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<div id="app">
{{message}}
div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
<script>
/*vm:viewModel*/
var vm = new Vue({
el: "#app",
/*model*/
data: {
message: "hello,world!"
}
})
script>
body>
html>
学到这的时候,我发现vm真的可以实现双向绑定:
这里正是体现了viewModel其中一个作用:
ViewModel能够观察到数据的变化,并对视图对应的内容进行更新.
体现了向上对视图层进行数据的双向绑定。
通俗的说,双向绑定就是指:前端视图的数据改变了,那么model层的data也会改变。反过来,model层的data改变了,前端视图的数据也会改变。并且这个过程是不需要刷新页面的。