码迷,mamicode.com
首页 > 其他好文 > 详细

依赖注入provide和inject

时间:2020-12-24 12:06:24      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:之间   alc   code   def   default   global   数据   const   mes   

依赖注入

  1. provide() 和 inject() 可以实现嵌套组件之间的数据传递
  2. 两个函数只能在 setup() 函数中使用
  3. 父组件中使用 provide() 函数向下传递数据
  4. 子组件中使用 inject() 函数获取上层传递过来的数据

共享普通数据

// 父组件
import { provide } from ‘@vue/composition-api‘
export default {
      name: ‘app‘,
      setup() {
            // 2. 父组件,通过 provide 函数向子组件共享数据(不限层级)
            // provide("要共享的数据名称", 被共享的数据)
            provide(‘globalColor‘, ‘red‘)
      }
}

// 子组件
import { inject } from ‘@vue/composition-api‘
export default {
      setup() {      
            // 通过指定的数据名称,获取到父级共享的数据
            const themeColor = inject("globalColor")
            return { themeColor }
      }
}

共享响应式数据

可以使用 ref 来保证 provide 和 inject 之间值的响应

// 提供者
const themeRef = ref(‘dark‘)
provide(‘ThemeSymbol’, themeRef)

// 使用者
const theme = inject(‘ThemeSymbol’)
watchEffect(() => {
      console.log(`${ theme.value }`)
})

依赖注入provide和inject

标签:之间   alc   code   def   default   global   数据   const   mes   

原文地址:https://www.cnblogs.com/yuxi2018/p/14160954.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!