vue provide和inject小实例
import Vue from 'vue'const ChildComponent={
template:`chilid companet:{{data.value}}`,
inject:['yeye','data'],
mounted(){
}
}
const compoent={
name:'comp',
components: {
ChildComponent
},
template:` this is compoent {{text}}
<input type="text" v-model.number="text">
<child-component></child-component>
`,
props:{
active:{
validator(value){
return typeof value === 'boolean'
}
}
},
data(){
return {
text:0
}
}
}
// Vue.component('CompOne',compoent)
new Vue({
el:'#root',
/* provide:{//直接赋值是不能传递的,因为这个this对象还没有创建,跨阶层调用
yeye:this,
value:this.value
},*/
provide(){//所以要用方法的形式进行赋值,默认没有reactive的属性,
const data={}
Object.defineProperty(data,'value',{
get:()=>this.value,//返回的是这里的value的实例的值
enumerable:true
})
return {
yeye:this,
data
}
},
components:{
CompOne:compoent
},
data(){
return {
value:123
}
},
template:`
<comp-one></comp-one>
<input type="text" v-model="value">
`,
})
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]