Vue.js是构建数据驱动的 web 界面的库,而不是一个全能框架—它只 聚焦于视图层。特点:
独立可复用
的小组件来构建大型应用。http://cdn.jsdelivr.net/vue/1.0.26/vue.min.js
$ npm install vue
$ bower install vue
Vue.js 不支持 IE8 及其以下版本
<div class="app">
{{message}}
</div>
<script src="vue.js"></script>
<script>
var vm = new Vue({
el:'.app',
data:{
message:'hello world'
}
});
</script>
<div class="app">
{{message}}
+ <input type="text" v-model="message">
</div>
{{message?message:'init data'}}
支持三元表达式
{{*message}}
<div class="app">
{{{message}}}
</div>
<script>
var vm = new Vue({
el:'.app',
data:{
message:'<h1>hello world</h1>'
}
});
</script>
一个 Vue 实例其实正是一个 MVVM 模式中所描述的 ViewModel
var message = {
name:'hello'
};
var vm = new Vue({
el:'.app',
data:{
message:message
}
});
alert(vm.message == message);
实例上的data属性绑定的数据和原数据指定的是同一内存空间
var message = {
name:'hello'
};
var vm = new Vue({
el:'.app',
data:{
message:message
}
});
message.name = 1000; //视图刷新
注意
不能将原数据指向新的数据,否则不能刷新视图
var message = {
name:'hello'
};
var vm = new Vue({
el:'.app',
data:{
message:message
}
});
message = {name:'hello1'}
var message = {
name:'hello'
};
var vm = new Vue({
el:'.app',
data:{
message:message
}
});
message.age = 100;
Vue.set/vm.$set可以给对象添加属性
Vue通过$暴露实例上的属性和方法
获取当前绑定的元素
vm.$el = document.querySelector('.app');
不能更改绑定对象
获取当前绑定的数据
vm.$data = {message:{name:1}}
更换data对象刷新视图,尽量不去更换
监控模型的变化
vm.$watch('message', function (newVal,oldVal) {
console.log(newVal,oldVal);
});
方法名 | 用法 |
---|---|
created | 先实例化,在实例化后(检测el) |
vm.$mount('#app') | 手动挂载实例 |
beforeCompile | 开始编译之前 |
compiled | 编译完成后 |
ready | 插入文档后 |
vm.$destroy() | 手动销毁实例 |
beforeDestroy | 将要销毁 |
destroyed | 销毁实例 |
var vm = new Vue({
data:{
hello:'zfpx'
},
created: function () {alert('实例创建完成');},
beforeCompile: function () {alert('开始编译前')},
compiled: function () {alert('编译完成')},
ready: function () {alert('准备好了')},
beforeDestroy: function () {alert('准备销毁')},
destroyed: function () {alert("销毁")}
});
vm.$mount('#app');
vm.$destroy();
用于计算性属性(默认为属性的get方法)
var vm = new Vue({
data:{
name:'zfpx'
},
computed: {
hello: function () {
return this.name+8;
}
}
});
vm.$mount('#app');
属性的获取和设置
var vm = new Vue({
data:{
name:'zfpx'
},
computed: {
hello:{
get: function () {
return this.name+8;
},
set: function (val) {
this.name = val
}
}
},
});