一 Vue实例
//构造一个vue实例
const vm=new Vue(option)
vm._ _proto_ _=Vue.prototype
Vue._ _proto_ _=Fuction.Prototype
vm对象封装了对视图的所有操作,包括数据读写,事件绑定,DOM更新。 vm的构造函数是Vue,按照ES6的说法,vm所属的类是Vue。 options是new Vue的参数,一般称之为选项或构造选项。
二 选项-DOM
el(挂载点),提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标。可以是 CSS 选择器,也可以是一个 HTMLElement 实例。在实例挂载之后,元素可以用 vm.$el 访问。如果在实例化时存在这个选项,实例将立即进入编译过程,否则,需要显式调用 vm.$mount() 手动开启编译。
三 选项-数据
- data(内部数据)。支持对象和函数,但优先使用函数。因为组件可能被用来创建多个实例。如果 data 仍然是一个纯粹的对象,则所有的实例将共享引用同一个数据对象!(使用对象为什么不对)通过提供 data 函数,每次创建一个新实例后,我们能够调用 data 函数,从而返回初始数据的一个全新副本数据对象。(使用函数为什么对)
- props(外部数据)。props 可以是数组或对象,用于接收来自父组件的数据。(1)type:会检查一个 prop 是否是给定的类型,否则抛出警告。
(2)default:any为该 prop 指定一个默认值。(3)required:Boolean定义该 prop 是否是必填项。(4)validator:Function自定义验证函数会将该 prop 的值作为唯一的参数代入。 - methods(方法)方法中的 this 自动绑定为 Vue 实例。不应该使用箭头函数来定义 method 函数 (例如 plus: () => this.a++)。因为箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向 Vue 实例,this.a 将是undefined。
四 选项-资源
- components(组件)。使用Vue组件
import Demo from './Demo.vue'
// 全局组件,传入一个选项对象 (自动调用 Vue.extend)
Vue.component('Demo2', { /* ... */ })
newVue({
components:{
Demo,
Demo2,
Demo3:{`
data(){
return{}
},
template:<div>hi</div
`}
}
})
五 选项-生命周期钩子
- beforeCreate
- created
- beforeMount
- mounted
- beforeUpdate
- updated
- activated
- deactivated
- beforeDestroy
- destroyed 可以用一个toggle按钮控制元素展示或隐藏,从而模拟消亡。
- errorCaptured