首页 > 解决方案 > 如何将相同的道具两次传递给vue组件

问题描述

使用 vue 可以做到这一点:

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

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

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

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

标签: vue.jsvue-component

解决方案


合并策略用于在创建组件时控制来自 Options API 和 mixins的重叠选项的合并。

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

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

TL:博士

这不可能。继续前行...


推荐阅读