- 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">
-
- `,
- })
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |