【问题标题】:How to pass same prop twice to vue component如何将相同的道具两次传递给vue组件
【发布时间】:2021-08-11 14:17:43
【问题描述】:

使用 vue 可以做到这一点:

const someComputedClass = 'otherClass'
<Foo class="someClass" :class="someComputedClass" />

你可以传递 class 和 :class ,它会合并两者。我知道类属性在这里有某种特殊处理。但是,我也希望我自己的组件的道具也有这种行为。

const someComputedProp = 'otherValue'
<Foo prpp="someValue" :prop="someComputedProp " />

有没有办法实现这一点(可能使用自定义合并策略)或者这完全不可能?

【问题讨论】:

    标签: vue.js vue-component


    【解决方案1】:

    合并策略用于在创建组件时从 Options API 和 mixins 控制 merging of overlapping options

    styleclass 道具的特殊处理是运行时的事情,它之所以有效,只是因为 Vue 开发人员认为这样做是一件有用的事情并以这种方式实施。

    除非 Vue 开发人员决定实现它,否则您想要的东西是不可能的......我对此表示怀疑 - 因为为 classstyle 实现它很简单,因为 HTML 标准很好地定义了“输出”。对任何prop 实现相同的操作要困难得多,因为您事先不知道道具的数据类型(与classstyle 不同)——即如果数据类型为道具是NumberString

    TL:DR

    这是不可能的。继续……

    【讨论】:

    • 您的链接链接到自定义合并,这正是我所需要的。这实际上使它成为可能,不是吗?
    • 嗯,不是真的。正如我所说 - 在创建组件之前使用合并策略来合并不同的“选项”对象(来自组件定义和来自 mixins)。您想要的与组件创建无关...
    猜你喜欢
    • 2021-12-02
    • 2019-12-27
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2019-10-23
    • 2021-12-02
    相关资源
    最近更新 更多