如何将相同的道具两次传递给 vue 组件
How to pass same prop twice to vue component
可以用 vue 做到这一点:
const someComputedClass = 'otherClass'
<Foo class="someClass" :class="someComputedClass" />
您可以传递 class 和 :class,它将合并两者。我知道 class 属性在这里有某种特殊处理。但是,我也希望我自己的组件的 prop 具有这种行为。
const someComputedProp = 'otherValue'
<Foo prpp="someValue" :prop="someComputedProp " />
有没有办法实现这个(也许使用自定义合并策略)或者这完全不可能?
合并策略用于在创建组件时从选项 API 和混合中控制 merging of overlapping options。
style
和 class
道具的特殊处理是一个运行时的事情,它之所以起作用,只是因为 Vue 开发人员认为这是一件有用的事情,并以这种方式实现了它。
除非 Vue 开发人员决定实施它,否则您想要的是不可能的......我对此表示怀疑 - 因为为 class
和 style
实施它很简单,因为“输出”定义明确按 HTML 标准。为任何 prop
实现相同的事情要困难得多,因为您事先不知道道具的数据类型(与 class
和 style
相对)——即如何合并如果道具的数据类型是 Number
或 String
?
TL:DR
这是不可能的。继续...
可以用 vue 做到这一点:
const someComputedClass = 'otherClass'
<Foo class="someClass" :class="someComputedClass" />
您可以传递 class 和 :class,它将合并两者。我知道 class 属性在这里有某种特殊处理。但是,我也希望我自己的组件的 prop 具有这种行为。
const someComputedProp = 'otherValue'
<Foo prpp="someValue" :prop="someComputedProp " />
有没有办法实现这个(也许使用自定义合并策略)或者这完全不可能?
合并策略用于在创建组件时从选项 API 和混合中控制 merging of overlapping options。
style
和 class
道具的特殊处理是一个运行时的事情,它之所以起作用,只是因为 Vue 开发人员认为这是一件有用的事情,并以这种方式实现了它。
除非 Vue 开发人员决定实施它,否则您想要的是不可能的......我对此表示怀疑 - 因为为 class
和 style
实施它很简单,因为“输出”定义明确按 HTML 标准。为任何 prop
实现相同的事情要困难得多,因为您事先不知道道具的数据类型(与 class
和 style
相对)——即如何合并如果道具的数据类型是 Number
或 String
?
TL:DR
这是不可能的。继续...