组件之间通信 provide/inject

祖先级组件通信 provide/inject

// 祖先
  provide () {
    return {
      fun: this.aa
    }
  }

  aa (e) {
    console.log(e) // 132
    console.log(this)  // 子元素中调用时,this指向绑定provide的祖先元素
  }

// 子元素 使用
inject:['fun']
this.fun(132)

默认值

tupain 使用默认值

非响应式

官网说:provide 和 inject 绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的属性还是可响应的。

就是 传递的是一个对象,修改的是这个对象的一个属性,这个修改是可以被响应到的。否则 传递的是字符串 或者 修改的是整个对象是不能被监测到

tupain 不响应
tupain 修改对象属性
tupain 传入this 就是传入一个对象

嵌套 provide链

provide 的核心就是沿着实例的$parent向上找寻_provided (_provided上面就有我们绑定的的数据),一旦找到 就会这个_provided 为准,所以再多个provide 嵌套中,以离自己最近的provide 为准。

tupain provide链
posted @ 2019-12-17 14:40  雨天。我  阅读(91)  评论(0)    收藏  举报