【问题标题】:Vue JS provide/inject and PropsVue JS 提供/注入和道具
【发布时间】:2019-08-12 20:50:52
【问题描述】:

与道具相比,何时应该使用提供/注入。

在我看来,道具使组件更有意义。

provide/inject 使组件紧密耦合。

在哪些用例中使用提供/注入是更好的方法。

请指教

谢谢

【问题讨论】:

    标签: javascript vue.js vuejs2 vue-component


    【解决方案1】:

    以下是帮助我在许多情况下做出选择的一些差异

    1. props 是响应式的,而 provide / injection 不是。
    2. props 只能用于直接子组件。

    来自文档:

    provide/inject 一起使用,允许一个祖先组件作为其所有后代的依赖注入器,无论组件层次结构有多深,只要它们在同一个父链中。如果你熟悉 React,这与 React 的上下文特性非常相似。

    1. 您可以使用 provide / injection 为 props 设置默认值。

    示例:

    const Child = {
      inject: ['foo'],
      props: {
        bar: {
          default () {
            return this.foo
          }
        }
      }
    }
    

    Here 是一篇关于何时使用提供/注入的好例子

    【讨论】:

    • 感谢您的回答。道具是反应性的吗?我的印象是只有数据属性是反应性的。如果 props 是响应式的,为什么我们需要观察它们在传递它们的父组件中发生的任何更改?请澄清
    • Provide/inject 自 2020 年起为反应式。
    猜你喜欢
    • 2022-06-16
    • 2021-06-22
    • 2020-03-30
    • 2018-05-29
    • 2020-08-27
    • 2023-03-14
    • 2021-02-12
    • 1970-01-01
    • 2018-08-30
    相关资源
    最近更新 更多