首页 文章

我是否需要显式声明所有组件属性(vue.js)?

提问于
浏览
0

我正在开发一个组件,这是一种美化的输入控件,它将使用Bootstrap网格保存大量重复的表单HTML(必须在每个表格旁边放置一个标签,为其分配'for'属性,为输入分配“表单控件”类等 . 我们的想法是组件包含一个输入控件,其默认值(例如'form-control'类)已经设置,标签前置等 .

HTML'输入'控件作为一大堆可选属性,其中一些我可能希望在某些时候使用 - 只读,禁用,占位符等 . 我实际上必须事先声明所有这些,就像它一样我的组件的属性,如果我可以使用其中一个或多个?如果这是真的,这有点令人讨厌而且相当麻烦 . 如果所有未明确声明的属性只是在组件的范围内可用,那将会很方便 .

我想,这是一个足够普遍的要求,也许还有另一种方法可以做到这一点?

2 回答

  • 1

    您必须声明所有可以使用的道具,但您必须添加REQUIRE:TRUE仅适用于所需的道具 . 就这样 .

  • 1

    您不需要声明所有这些,您可以使用 v-bind 绑定可选属性的对象 . 所以,在你的父母那里你可以做到:

    <custom-input :optional-attrs="{placeholder: 'Type something!'}"></custom-input>
    

    然后在您的组件中将其添加为prop:

    props: {
       optionalAttrs: {}
     }
    

    并在组件的输入中使用 v-bind

    <input type="text" class="form-control" v-bind="optionalAttrs">
    

    这是JSFiddle:https://jsfiddle.net/rww551og/

相关问题