一个 Vue 应用由一个通过 new Vue
创建的根 Vue 实例,以及可选的嵌套的、可复用的组件树组成。举个例子,一个 todo 应用的组件树可以是这样的:
根实例
└─ TodoList
├─ TodoItem
│ ├─ TodoButtonDelete
│ └─ TodoButtonEdit
└─ TodoListFooter
├─ TodosButtonClear
└─ TodoListStatistics
当一个 Vue 实例被创建时,它将 data
对象中的所有的 property
加入到 Vue 的响应式系统中。当这些 property 的值发生改变时,视图将会产生“响应”,即匹配更新为新的值(根据用户的操作,动态变化的界面
)。
但是
,必须是在实例创建之后才可以。
为防止出现实例中缺少某些晚些时候使用的 property
,可以设置一些初始值,例如:
data: {
newTodoText: '',
visitCount: 0,
hideCompletedTodos: false,
todos: [],
error: null
}
特殊情况:Object.freeze()
可以阻止修改现有的 property
,导致响应式系统无法追踪变化。
var obj = {
foo: 'bar'
}
Object.freeze(obj)
new Vue({
el: '#app',
data: obj
})
特殊的property 与方法
,用前缀$
表示(区分我们自己定义的property
)
var vm = new Vue({
el: '#example',
data: data
})
vm.$data === data // => true
vm.$el === document.getElementById('example') // => true
生命周期钩子(在实例不同阶段得到使用,类似C语言构造函数、析构函数?),api文档
如:
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
activated
deactivated
beforeDestroy
destroyed
errorCaptured