实例
Vue 实例
每个
var vm = new Vue({
// 选项
});
虽然没有完全遵循
一个
根实例
└─ TodoList
├─ TodoItem
│ ├─ TodoButtonDelete
│ └─ TodoButtonEdit
└─ TodoListFooter
├─ TodosButtonClear
└─ TodoListStatistics
数据与方法
当一个
// 我们的数据对象
var data = { a: 1 };
// 该对象被加入到一个 Vue 实例中
var vm = new Vue({
data: data,
});
// 获得这个实例上的 property
// 返回源数据中对应的字段
vm.a == data.a; // => true
// 设置 property 也会影响到原始数据
vm.a = 2;
data.a; // => 2
// ……反之亦然
data.a = 3;
vm.a; // => 3
当这些数据改变时,视图会进行重渲染。值得注意的是只有当实例被创建时就已经存在于
vm.b = "hi";
那么对
data: {
newTodoText: '',
visitCount: 0,
hideCompletedTodos: false,
todos: [],
error: null
}
这里唯一的例外是使用
var obj = {
foo: "bar",
};
Object.freeze(obj);
new Vue({
el: "#app",
data: obj,
});
<div id="app">
<p>{{ foo }}</p>
<!-- 这里的 `foo` 不会更新! -->
<button v-on:click="foo = 'baz'">Change it</button>
</div>
除了数据
var data = { a: 1 };
var vm = new Vue({
el: "#example",
data: data,
});
vm.$data === data; // => true
vm.$el === document.getElementById("example"); // => true
// $watch 是一个实例方法
vm.$watch("a", function (newValue, oldValue) {
// 这个回调将在 `vm.a` 改变后调用
});
实例生命周期钩子

每个
new Vue({
data: {
a: 1,
},
created: function () {
// `this` 指向 vm 实例
console.log("a is: " + this.a);
},
});
// => "a is: 1"
也有一些其它的钩子,在实例生命周期的不同阶段被调用,如