type
status
date
slug
summary
tags
category
icon
password

Provide/Inject

当我们需要从父组件向子组件传递数据时,会使用props。但是如果有一些深层嵌套的组件也需要最外层父组件的部分内容,我们再使用props沿着组件链逐级传递下去,会很麻烦,也不易于代码维护
provide可以在祖先组件中指定我们想要提供给后代组件的数据或方法,而在任何后代组件中,我们都可以用Inject来接收provide提供的数据或方法
notion image

使用方法

在祖先组件引入provideprovide接收两个参数,第一个参数是注入名,第二个参数是提供的依赖值provide可以在一个组件内被多次调用,使用不同的注入名,可以注入不同的依赖值
在后代组件A.vue里引入Inject()函数,第一个参数是注入名,provide()函数里的注入名要保持一致,第二个参数是一个默认值(可选)
如下所示:如果祖先组件没有为color提供值时,就可以在provide()函数里声明一个orange默认值
 
注意:后代组件里可以修改祖先组件注入的依赖值,如果想要使其不被修改,可以在注入依赖值时引入readonly将依赖值包裹起来

案例

演示效果:
notion image
学习Vue3第二十二节:组件v-model学习Vue3第十九节:TransitionGroup过渡列表
衔蝉
衔蝉
一个普通的干饭人🍚
公告
type
status
date
slug
summary
tags
category
icon
password
欢迎来到衔蝉的博客小站✨
这里是我的个人学习、生活记录
--- 免责声明 ---
⚠️ 本站内容仅代表个人观点
⚠️ 本站内容仅供学习参考使用
--- 关于我 ---
我要如加菲猫一般地活着
一大碗杂碎面
就能换来一个艳阳天🌻