v-else-if
当有else分支逻辑的时候,可以给该元素加上v-else指令来控制,v-else会根据上面的那个v-if来控制,效果与v-if相反,注意,一定要紧挨着
还有v-else-if指令可以实现多分支逻辑
在元素上使用v-if条件渲染分组
根据表达式的值true或false在DOM中生成或者移除一个元素(或多个元素)。 有点类似JavaScript中的if条件判断。在Vue中除了v-if也有v-else-if和v-else之类;在元素上使用v-show条件渲染分组
除了v-if之外,Vue还提供v-show也可以控制元素的渲染。 v-show和v-if功能有点相似,其中v-if依赖于控制DOM节点,而v-show是依赖于控制DOM节点的display属性。 当v-show传入的值为true时,对应DOM元素的display的值为block之类的,反之为false时,display的值为none。也就是用户看不到元素的显示,但其DOM元素还是存在的v-for
在vue中可以通过v-for来循环数据的通知循环dom,语法是item in/of items,接收第二个参数是索引 (item,index) of items,还可以遍历对象,第一个参数是value,第二个是key,第三个依然是索引
v-for="(value, key) in mapObject" :key="key" 其中key为键,value为对应的值key
跟踪每个节点的身份,从而重用和重新排序现有元素 *理想的 key 值是每项都有的且唯一的 id。data.id在vue中使用v-on为dom绑定事件 在v-on后面添加绑定事件 将一些方法设置在methods 可以绑定多个方法 v-on可以简写成 @v-on:click----@click
<div id="app-5"> <p>{ { message } }</p> <button v-on:click="reverseMessage">逆转消息</button> </div> var app5 = new Vue({ el: '#app-5', data: { message: 'Hello Vue.js!' }, methods: { reverseMessage: function () { this.message = this.message.split('').reverse().join('') } } })事件修饰符:stop、prevent、self、once
键盘修饰符:enter、space、up、down
表单修饰符修饰符:number、trim、lazy
<!-- 阻止单击事件继续传播 --> <a v-on:click.stop="doThis"></a> <!-- 提交事件不再重载页面 --> <form v-on:submit.prevent="onSubmit"></form> <!-- 修饰符可以串联 --> <a v-on:click.stop.prevent="doThat"></a> <!-- 只有修饰符 --> <form v-on:submit.prevent></form> <!-- 点击事件将只会触发一次 --> <a v-on:click.once="doThis"></a> <!-- 只当在 event.target 是当前元素自身时触发处理函数 --> <div v-on:click.self="doThat">...</div>代码展示:
<body> <div id="app"> <p>{{msg}}</p> <p><input type="text" v-model="msg"></p> <hr> <p>{{msg}}</p> <p><input type="text" v-model.lazy="msg"></p> <hr> <p>{{msg}}</p> <p><input type="text" v-model.number="msg"></p> <hr> <p>{{msg}}</p> <p><input type="text" v-model.trim="msg"></p> <hr> <p>{{msg2}}</p> <p><input type="text" v-bind:value="msg2" @input="msg2=$event.target.value"></p> </div> <script src="./base/vue.min.js"></script> <script> new Vue({ el:"#app", data:{ msg:"hello world", msg2:"" } }) </script> </body> `` **嘻嘻**