数据单向传递

1. MVVM设计模式

在MVVM设计模式中由3个部分组成
M : Model 数据模型(保存数据, 处理数据业务逻辑)
V : View 视图(展示数据, 与用户交互)
VM: View Model 数据模型和视图的桥梁(M是中国人, V是美国人, VM就是翻译)

MVVM设计模式最大的特点就是支持数据的双向传递
数据可以从 M -> VM -> V
也可以从 V -> VM -> M

2. Vue中MVVM的划分

Vue其实是基于MVVM设计模式的
View:被控制的区域
View Model:Vue实例对象
Model:实例对象中的data

3. Vue中数据的单向传递

我们把"数据"交给"Vue实例对象", "Vue实例对象"将数据交给"界面"
Model -> View Model -> View

<!--这里就是MVVM中的View-->
<div id="app">
    <p>{{ message  }}</p>
</div>
<script>
    // 这里就是MVVM中的View Model
    let vue = new Vue({
        el: '#app',
        // 这里就是MVVM中的Model
        data: {
            message : "Vue单向传递"
        }
    });
</script>

数据双向绑定

默认情况下Vue只支持数据单向传递 M -> VM -> V
但是由于Vue是基于MVVM设计模式的, 所以也提供了双向传递的能力,在<input>、<textarea> 及 <select> 元素上可以用 v-model 指令创建双向数据绑定, 也只有这三个元素可以实现双向绑定
例如:

<div id="app">
    <input v-model="somebody">
    <p>hello {{somebody}}</p>
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            somebody:'小明'
        }
    })
</script>

这个例子中直接在浏览器input中输入别的名字,下面的p的内容会直接跟着变。这就是双向数据绑定。

v-model 会忽略所有表单元素的 `value`、`checked`、`selected` 特性的初始值
而总是将 Vue 实例的数据作为数据来源。要在JavaScript 在组件的 data 选项中声明初始值。

web_it
0 声望0 粉丝

« 上一篇
02-Vue基本使用