①每个Vue.js应用都是通过构造函数Vue创建一个Vue的根实例启动的:
var vm = new Vue({
//选项
})
②可以扩展Vue构造器,从而用预定义选项创建课复用的组件构造器: var MyComponent = Vue.extend({
//扩展选项
})
var MyComponentInstance = new MyComponent()
所有的Vue.js组件其实都是被扩展的Vue实例
③每个Vue实例都会代理其data对象里所有的属性:
var vm = new Vue({
data:data
})
只有这些被代理的属性是响应式的
④不要在实例属性或者回调函数中(vm = $watch('a',newVal => this.myMethod()))使用箭头函数,因为箭头函数绑定父上下文,所以this不会像预想的一样是Vue实例,而是this.myMethod未被定义。
⑤实例生命周期
每个Vue实例在被创建之前都要经过一系列的初始化过程。例如,实例需要配置数据观测,编译模板,挂载实例到DOM,然后再数据变化时更新DOM。在这个过程中,实例也会调用一些生命周期钩子,这就给我们提供了执行自定义逻辑的机会。例如,created这个钩子在实例被创建之后被调用:
var vm = new Vue({
data:{
a:1
},
created:function(){
//this 指向 vm 实例
console.log('a is:' + this.a)
}
})
//a is :1
钩子的this指向调用它的Vue实例,Vue.js没有控制器的概念,组件的自定义逻辑可以分布在这些钩子中
生命周期图示: