provide和inject的使用,太方便了

Vue允许使用provide和inject选项在祖先组件与后代组件之间进行非props的数据传递。父组件通过provide提供变量,如`message`,子组件则通过inject来注入并使用这个变量,实现了跨层级的数据绑定,但不适用于多级组件通信。
摘要由CSDN通过智能技术生成

在Vue中,可以使用provide和inject来进行祖先组件和后代组件之间的数据传递。provide选项允许祖先组件指定它想要提供给后代组件的数据,而inject选项允许后代组件在其任何位置注入这些数据。

以下是一个简单的示例,展示了如何在父组件中提供一个变量,然后在子组件中注入这个变量:

<!-- ParentComponent.vue -->
<template>
  <div>
    <h1>{{ message }}</h1>
    <ChildComponent />
  </div>
</template>

<script>
  import ChildComponent from './ChildComponent.vue'

  export default {
    components: {
      ChildComponent
    },
    provide() {//重要部分
      return {
        message: 'Hello from ParentComponent'
      }
    }
  }
</script>

在上面的代码中,我们在父组件中通过provide选项提供了一个名为message的变量,它的值为’Hello from ParentComponent’。

<!-- ChildComponent.vue -->
<template>
  <div>
    <h2>{{ message }}</h2>
  </div>
</template>

<script>
  export default {
    inject: ['message']
  }
</script>

在上面的代码中,我们在子组件中使用inject选项来注入名为message的变量。这个变量的值来自于父组件提供的数据。
最终渲染的结果是:

<h2>Hello from ParentComponent</h2>

可以看到,子组件中的变量值和父组件中提供的变量值是一样的,说明变量已经成功地从父组件传递到了子组件。需要注意的是,provide和inject选项只在父子组件之间起作用,不会跨越多个层级的组件。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值