-provide和inject是成对出现的,用于父组件向子孙组件传递数据
-provider/inject:简单的来说就是在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量
需要注意的是这里不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。而不是局限于只能从当前父组件的prop属性来获取数据。
父组件
| export default { |
| name: 'App', |
| data(){ |
| return{ |
| arr:["张三","李四","王五"], |
| obj:{ |
| id:"001", |
| num:80 |
| } |
| } |
| }, |
| |
| |
| |
| |
| |
| provide(){ |
| return{ |
| arr:this.arr, |
| obj:this.obj, |
| getUserInfo:this.getUserInfo |
| } |
| }, |
| methods:{ |
| getUserInfo(e,value){ |
| console.log("获取用户信息",e.target,value); |
| } |
| }, |
| components: { |
| HelloWorld, |
| layout |
| } |
| } |
后代组件
| <template lang="pug"> |
| .box |
| ul |
| li(v-for="i in arr", :key="i") {{ i }} |
| a-button(@click="getUserInfo($event, 1000)") 点击调用getUserInfo函数 |
| </template> |
| |
| <script> |
| export default { |
| name: "pug", |
| inject: ["arr", "obj", "getUserInfo"], |
| }; |
| </script> |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具