在VueJS中,我们可以使用v-if添加或删除DOM元素:

<button v-if="isRequired">Important Button</button>

但是是否有一种方法可以添加/删除dom元素的属性,例如下面的条件设置所需的属性:

Username: <input type="text" name="username" required>

通过类似于:

Username: <input type="text" name="username" v-if="name.required" required>

什么好主意吗?


当前回答

你也可以使用computed

<input :required="isRequired" />

计算:

computed: {
   isRequired () {
      return someLogic //Boolean, true or false
   }

其他回答

你可以在属性前添加冒号(也可以使用条件)

<div :class="current? 'active': '' " > 
<button :disabled="InvalidForm? true : false " >

如果你想设置一个动态值,比如props,那么你也可以在属性名前使用冒号,比如:

<Child :data="userList" />

Vue 3中改变的属性的条件呈现。要省略一个属性,请使用null或undefined。

珊瑚礁2:

<div :attr="false">
Result: <div>

<div :attr="null">
Result: <div>

珊瑚礁3:

<div :attr="false">
Result: <div attr="false">

<div :attr="null">
Result: <div>

Try:

<input :required="test ? true : false">

更新:Vue 3已经改变了,请参阅这个答案https://stackoverflow.com/a/64598898

最简单的形式:

<input :required="test">   // if true
<input :required="!test">  // if false
<input :required="!!test"> // test ? true : false

你可以这样写:

<input type="text" name="username" :required="condition ? true : false">