每一个 Vue 应用都是经过用 Vue 函数建立一个新的 Vue 实例开始的:vue
var vm = new Vue({ // 选项 })
当建立一个 Vue 实例时,你能够传入一个选项对象。做为参考,你也能够在 api/#选项-数据 文档 中浏览完整的选项列表。api
const app = new Vue({ el: '#root', // vue实例挂载的位置,若是不用el挂载,则也能够用app.#mount('#root') template: '<div ref="div">{{text}} {{obj.a}}</div>', //模板选项 data: { //实例数据选项 text: 0 } })
除了数据属性,Vue 实例还暴露了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。服务器
$dataapp
app.$data //{text:1},就是vue实例中的data对象
$propsdom
app.$props // 当前组件接收到的 props 对象。父组件向子组件传递的数据
$el异步
app.$el //vue挂载的dom节点
$options函数
// 须要在选项中包含自定义属性时会有用处 app.$options //当前 Vue 实例的初始化选项,注意:直接修改app.$options.data.text = 1的值是没有效果的
$parent性能
app.$parent //父实例,若是当前实例有的话。
$rootthis
app.$root //当前组件数的根vue实例,若是当前实例没有父实例,此实例将会是其本身
$childrencode
// 当前实例的直接子组件。使用组件时使用,好比使用<item><div></div></item>组件时,里面的<div</div>就是item的children app.$children
$slots
app.$slots//做为插槽的时候引用 app.$scopedSlots//
$refs
//模板的引用,快速定位到节点或组件,返回HTML对象或组件,例如<div ref="div"></div> app.$refs
$isServer
app.$isServer//当前 Vue 实例是否运行于服务器。 应用于服务端渲染
$watch( expOrFn, callback, [options] )
app.$watch //监听数据变化时执行,与选项里面的watch同样
对比:
unWatch = this.$watch('text', (newText, oldText) => { console.log(`${newText} : ${oldText}`) }) watch: { text(newText, oldText) { console.log(`${newText} : ${oldText}`); } }, //使用watch监听时,组件销毁时会自动销毁,而$watch则不会,必须本身调用unWatch()进行销毁
$on(event,callback) $emit( eventName, […args] ) $once( event, callback )
//监听事件 app.$on('test', function (msg) { console.log(msg) //hi }) //触发事件 app.$emit('test', 'hi') //监听事件,只触发一次 app.$once('test', function (msg) { console.log(msg) //hi })
$forceUpdate()
//迫使 Vue 实例从新渲染。 app.$forceUpdate() //当给初始化未设置的属性时,就不会自动响应数据,这样迫使从新渲染,能够从新响应 //尽可能不要以这种方式来作,这样性能开销很大
$set( target, key, value ) $delete( target, key )
//设置某一个值 app.$set(this.obj,'a',i) //删除某一个值 app.$set(this.obj,'a)
$nextTick ( [callback] )
//$nextTick 是在下次 DOM 更新循环结束以后执行延迟回调,在修改数据以后使用 $nextTick,则能够在回调中获取更新后的 DOM,Vue 实现响应式并非数据发生变化以后 DOM 当即变化,而是异步更新的 new Vue({ // ... methods: { // ... example: function () { // 修改数据 this.message = 'changed' // DOM 尚未更新 this.$nextTick(function () { // DOM 如今更新了 // `this` 绑定到当前实例 this.doSomethingElse() }) } } })