vue实例
- 实例创建:new方法
- 实例的调用:实例对象.$+(实例中的属性或者方法)
- el 确定实例挂载的地方(DOM对象)
var data = { a: 1 }
var vm = new Vue({
el: '#example',
data: data,
created: function () {
// `this` 指向 vm 实例
console.log('a is: ' + this.a)
}
})
vm.$data === data // => true
vm.$el === document.getElementById('example') // => true
// $watch 是一个实例方法
vm.$watch('a', function (newValue, oldValue) {
// 这个回调将在 `vm.a` 改变后调用
})
复制代码
实例属性
vm.$el
- Vue 实例使用的根 DOM 元素。
vm.$data
- Vue 实例观察的数据对象
vm.$prop
- 当前组件接收到的 props 对象
vm.$attrs
- 包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。
- 当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class 和 style 除外),
- 并且可以通过 v-bind="$attrs" 传入内部组件——在创建高级别的组件时非常有用。
vm.$listeners
- 包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。
- 它可以通过 v-on="$listeners" 传入内部组件——在创建更高层次的组件时非常有用。
vm.$options
- 用于当前 Vue 实例的初始化选项。需要在选项中包含自定义属性时会有用处:
new Vue({
customOption: 'foo',
created: function () {
console.log(this.$options.customOption) // => 'foo'
}
})
复制代码
vm.$parent
- 父实例(如果该实例的确有父实例的话)
vm.$.root
- 当前组件树的根 Vue 实例。如果当前实例没有父实例,此实例将会是其自己。
vm.$children
- 当前实例的直接子组件。需要注意 $children 并不保证顺序,也不是响应式的。
- 如果你发现自己正在尝试使用 $children 来进行数据绑定,考虑使用一个数组配合 v-for 来生成子组件,并且使用 Array 作为真正的来源。q
vm.$slots
- 用来访问被插槽分发的内容。每个具名插槽 有其相应的属性 (例如:slot="foo" 中的内容将会在 vm.$slots.foo 中被找到)。default 属性包括了所有没有被包含在具名插槽中的节点。
vm.$scopedSlots
- 用来访问作用域插槽。对于包括 默认 slot 在内的每一个插槽,该对象都包含一个返回相应 VNode 的函数。
vm.$refs
- 一个对象,持有注册过 ref 特性 的所有 DOM 元素和组件实例。
vm.$isServer
- 当前 Vue 实例是否运行于服务器。
实例方法——数据
vm.$watch
- 观察 Vue 实例变化的一个表达式或计算属性函数。
- 回调函数得到的参数为新值和旧值。
- 表达式只接受监督的键路径。
- 对于更复杂的表达式,用一个函数取代。
// 键路径
vm.$watch('a.b.c', function (newVal, oldVal) {
// 做点什么
})
// 函数
vm.$watch(
function () {
return this.a + this.b
},
function (newVal, oldVal) {
// 做点什么
}
)
复制代码
vm.$set
vm.$delete
实例方法——事件
vm.$on
vm.$once
vm.$off
vm.$emit
实例方法———生命周期
vm.$mount
vm.forceUpdate
- 迫使 Vue 实例重新渲染。注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。
vm.$nextTick
- 将回调延迟到下次 DOM 更新循环之后执行。
- 在修改数据之后立即使用它,然后等待 DOM 更新。
- 它跟全局方法 Vue.nextTick 一样,不同的是回调的 this 自动绑定到调用它的实例上。
vm.destroy
- 完全销毁一个实例。清理它与其它实例的连接,解绑它的全部指令及事件监听器。
- 触发 beforeDestroy 和 destroyed 的钩子。