数字化管理平台
Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus
权限系统-商城
个人博客地址
通常,当我们需要从父组件向子组件传递数据时,我们使用 props。想象一下这样的结构:有一些深度嵌套的组件,而深层的子组件只需要父组件的部分内容。在这种情况下,如果仍然将 prop 沿着组件链逐级传递下去,可能会很麻烦。
官网的解释很让人疑惑,那我翻译下这几句话:
provide 可以在祖先组件中指定我们想要提供给后代组件的数据或方法,而在任何后代组件中,我们都可以使用 inject 来接收 provide 提供的数据或方法。
父组件传递数据)
import { provide, ref } from 'vue' import A from './components/A.vue' let flag = ref(1) provide('flag', flag) " _ue_custom_node_="true"> 我是App
后代组件接收数据
import { inject, ref } from 'vue' const flag = inject('flag', ref(1)) const change = () => { flag.value = 2 } " _ue_custom_node_="true"> 我是B change flag { { flag }}
使用场景:当父组件有很多数据需要分发给其后代组件的时候, 就可以使用provide和inject
Copyright © 2023 leiyu.cn. All Rights Reserved. 磊宇云计算 版权所有 许可证编号:B1-20233142/B2-20230630 山东磊宇云计算有限公司 鲁ICP备2020045424号
磊宇云计算致力于以最 “绿色节能” 的方式,让每一位上云的客户成为全球绿色节能和降低碳排放的贡献者