Vue高级特性 provider/inject选项

254 阅读1分钟

这对选项需要一起使用,以允许一个祖先向其所有子孙后代注入一个依赖,不论组件层次有多深,并在上下游关系成立的时间里始终生效

和React的上下文特性很相似。

选项格式

provide

provide现象应该是一个对象或者返回一个对象的函数。该对象包含可注入其子孙的property。在该对象中你可以使用 ES2015 Symbols 作为 key,但是只在原生支持 SymbolReflect.ownKeys 的环境下可工作。

inject

inject选线应该是:

  • 一个字符串数组,或
  • 一个对象,对象的key是本地的绑定名,value是:
    • 在可用的注入内容中搜索用的key(字符串或Symbol),或
    • 一个对象,该对象的:
      • from property是在可用的注入内容中搜索用的key(字符串或Symbol)
      • default property是降级的情况下使用的value

provideinject 绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的 property 还是可响应的。