我正在开发一个组件,这是一种美化的输入控件,它将使用Bootstrap网格保存大量重复的表单HTML(必须在每个表格旁边放置一个标签,分配一个&# 39;对于它的属性,为输入分配一个“表格 - 控制”类等。我们的想法是组件包含一个输入控件,其默认值(例如' form-control'类)已经设置,标签前置等等。
HTML'输入'控制作为一大堆可选属性,其中一些我可能希望在某些时候使用 - 只读,禁用,占位符等。我实际上必须事先声明所有这些,就像它在我的组件中一样。 s属性,如果我可以使用其中一个或多个?如果这是真的,这有点令人讨厌而且相当麻烦。如果所有未明确声明的属性只是在组件的范围内可用,那将会很方便。
我想,这是一个足够普遍的要求,可能还有另一种方法吗?
答案 0 :(得分:1)
您必须申报所有可以使用的道具,但您必须在需要的地方添加REQUIRE:TRUE。就是这样。
答案 1 :(得分:1)
You don't need to declare all of them, you can use v-bind
to bind an object of optional attributes. So, in your parent you can do:
<custom-input :optional-attrs="{placeholder: 'Type something!'}"></custom-input>
Then in your component simply add it as a prop:
props: {
optionalAttrs: {}
}
And use v-bind
on your input in your component:
<input type="text" class="form-control" v-bind="optionalAttrs">
Here's the JSFiddle: https://jsfiddle.net/rww551og/