Vue入门笔记系统(一)vue实例
vue实例每个Vue应用都是从创建一个新的Vue实例开始的,Vue函数:varvm=newVue({//option})创建Vue实例时,可以通过在选项对象中。作为参考,您还可以浏览api/#options-data文档中的完整选项列表。constapp=newVue({el:'#root',//挂载vue实例的地方,如果不用el挂载,也可以用app.#mount('#root')template:'{{text}}{{obj.a}}
',//Templateoptiondata:{//Instancedataoptiontext:0}})Vue实例属性(常用)除了数据属性,Vue实例还公开了一些有用的实例属性和方法。它们都以$为前缀,以区别于用户定义的属性。$dataapp.$data//{text:1}是vue实例中的data对象$propsapp.$props//当前组件接收到的props对象。父组件传递给子组件的数据$elapp.$el//vue挂载的dom节点$options//当需要在options中包含自定义属性时很有用$options//初始化选项为当前Vue实例,注意:直接修改app.$options.data.text=1的值没有作用$parentapp.$parent//父实例,如果当前实例有的话。$rootapp.$root//当前组件号的根vue实例,如果当前实例没有父实例,则此实例将是自己的$children//当前实例的直接子组件。在使用组件时使用,比如使用
组件时,里面的
就是item的childrenapp.$children$slotsapp.$slots//作为slot引用app.$scopedSlots//$refs//模板引用时,快速定位节点或组件,返回HTML对象或组件,如
app.$refs$isServerapp.$isServer//当前Vue实例是否运行在服务器上。应用于服务端渲染实例方法$watch(expOrFn,callback,[options])app.$watch//监听数据变化时执行,对比options中的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()//初始化unset属性时,不会自动响应数据,强制重新渲染,可以重新响应//这种方式尽量不要这样做,会造成很大的性能开销$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实现了responsive并且不是数据变化后立即变化的DOM,而是异步更新的新Vue({//...methods:{//...example:function(){//修改数据this.message='changed'//DOM还没有更新this.$nextTick(function(){//DOM现在更新了//`this`绑定到当前实例this.doSomethingElse()})}}})