Vue构造选项

95 阅读2分钟

内存图

把vm的示例命名为vm是尤雨溪习惯,我们应该沿用 vm对象封装了对视图的所有操作,包括数据读写,事件绑定,DOM更新 vm的构造函数是vue,按照ES6的说法,vm多数的类是vue iptionins 是new Vue的参数,一般称之为选项,或构造选项 图中有五个问好,我们一一了解

image.png

options里面有什么

options的五类属性

  1. 数据:data,props,propsData,computed,methods.watch
  2. DOM:el.template,render,renderError,
  3. 生命周期钩子:befaoreCreate,created,beforeMount
  4. 资源:directives,filters,compoentd
  5. 组合:parent,mixins,extends,provide,injiect
  6. 其他:先不看

image.pngimage.png

入门属性

el-挂载点

提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标。可以是 CSS 选择器,也可以是一个 HTMLElement 实例。 image.png

date-内部数据

一个组件的 data 选项必须是一个函数, data对象是共享的,如果有多个实例使用同一个data对象,会相互影响,data函数是独立的,每个实例可以维护一份被返回对象的独立的拷贝23。 image.png**

methods-方法

methods 将被混入到 Vue 实例中。可以直接通过 VM 实例访问这些方法,或者在指令表达式中使用。方法中的 this 自动绑定为 Vue 实例。 image.png

compoents

方法一

给复杂的组件起一个名字 image.png

方法二

image.png

方法三

image.png

四个钩子

created

在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),property 和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el property 目前尚不可用。

mounted

实例被挂载后调用,这时 el 被新创建的 vm.$el 替换了。如果根实例挂载到了一个文档内的元素上,当 mounted 被调用时 vm.$el 也在文档内。

updatad

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。 当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态。如果要相应状态改变,通常最好使用计算属性watcher 取而代之。

destroyed

实例销毁后调用。该钩子被调用后,对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。

props-外部有数据

props 可以是数组或对象,用于接收来自父组件的数据。props 可以是简单的数组,或者使用对象作为替代,对象允许配置高级选项,如类型检测、自定义验证和设置默认值。 image.png 如果message前面有冒号那么代表这个message将使用变量 image.png