1、提供(provide)和注入??(inject)这对选项需要配合使用,让一个祖先组件向它所有的后代注入一个依赖,不管这个组件有多深hierarchy是,并且会一直在上下游关系建立的时候生效。第一种用法:provide直接提供一个静态对象,inject注入这个对象提供的key,然后使用letchild={//subcomponentinject:['king','three'],//子组件接收data数据(){return{age:25}},mounted(){console.log(this.king,this.three)//使用父组件提供的数据}}letvm=newVue({provide(){//父组件提供数据。或者提供:{king:'js',three:25}return{king:'js',three:25}},data(){return{name:'js1'}},components:{child}})两个用法:provice提供自己组件的数据源,inject注入这个对象,然后使用letchild={//subcomponentinject:['vmData','abc'],data(){return{age:25}},mounted(){console.log(this.vmData.name)//调用父组件提供的动态name属性console.log(this.abc)}}letvm=newVue({provide(){return{vmData:this,abc:123}},data(){return{name:'js1'}},components:{child}})第三种用法:对于inject接收对象的情况**letchild={inject:{vmd:'vmData',//vmData是provide提供的字段名abccc:'abc'//abc是provide提供的字段名},data(){return{age:25}},mounted(){console.log(this.vmd.name)//调用父组件提供的动态名称属性console.log(this.abccc)}}letvm=newVue({provide(){return{vmData:this,abc:123}},data(){return{name:'js1'}},components:{child})}2、动态属性和动态事件
