0.简单说一下对Vue的理解
使用的是MVVM设计模式。M-Model,V-View,VM-ViewModel
- Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;(.js文件)
- View 代表UI 组件,它负责将数据模型转化成UI 展现出来;(.html文件)
- ViewModel 是一个同步View 和 Model的对象(vue.js文件)
V和M之间无联系,使用VM将两者联系起来,实现双向交互,即改变V或者M,另一项随之改变,或者说,同步。
因此,写代码时候不用考虑DOM和数据状态的同步问题的操作,解决了DOM性能差和数据状态难同步这两大痛点。
一个简单例子
View 层 - HTML 代码
<\div id="app">
{{ message }}
<\/div>
Model 层 - JavaScript 代码
new Vue({
el:'#app',
data: {
message:'Hello World!'
}
});
1.v-model双向数据绑定
View 层 - HTML 代码
<\div id="example-1">
<\div>{{ message }}<\/div>
<\input v-model = "message">
<\/div>
Model 层 - JavaScript 代码
var vm = new Vue({
el:"#example-1",
data:{
message:"hello,world!"
}
});
这里的话,在input里写东西,div中的message也会随之改变
如果不想让它改变,就把div行写为
这是vue2.0的写法,如果是1.0的版本,则写为{{ * message }}
结合一点简单的表达式
View 层 - HTML 代码
<\div>{{message.split("")}}<\/div>//[ "h", "e", "l", "l", "o", ",", "w", "o", "r", "l", "d", "!" ]
<\div>{{message.split("").reverse()}}<\/div>//[ "!", "d", "l", "r", "o", "w", ",", "o", "l", "l", "e", "h" ]
<\div>{{message.split("").reverse().join("")}}<\/div>//!dlrow,olleh
Model 层 - JavaScript 代码
var vm = new Vue({
el:"#example-1",
data:{
message:"hello,world!"
}
});
注意!使用split直接会把字符串转变为字符串数组
由于在数组中,所以每一项的字符串,都要用""包裹起来,以逗号隔开,再在最外面加上[]