vue的常用指令和事件修饰符
2019-04-02 22:52
633 查看
一、常用指令
1.v-text
解释:更新元素的 textContent
<div id="app"> <h2 v-text="text"></h2> </div> <script> let vm = new Vue({ el:'#app', data:{text:"<span>html标签</span>"} }) </script>
2.v-html
解释:更新元素的 innerHTML
<div id="app"> <h2 v-html="text"></h2> </div> <script> let vm = new Vue({ el:'#app', data:{text:"<span>html标签</span>"} }) </script>
3.v-cloak
解释:
①这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。
②防止刷新页面,网速慢的情况下出现{{ message }}等数据格式
<div id="app"> <h1 v-cloak>{{text}}</h1> </div> <script> let vm = new Vue({ el:'#app', data:{text:"<span>html标签</span>"} })
4.v-if 和 v-show
条件渲染
v-if:根据表达式的值的真假条件,销毁或重建元素
v-show:根据表达式之真假值,切换元素的 display CSS 属性
<div id="app"> <h1 v-show="false">v-show的显示和隐藏</h1> <h1 v-if="isIf">v-if的显示和隐藏</h1> </div> <script> let vm = new Vue({ el:"#app", data:{ isIf:true, msg:"请输入用户名" } }) </script>
- v-model双向绑定数据
<input type="text" v-model="msg"/> {{msg}} <!--取数据-->
6.v-for循环
v-for语法 : item in arr 参数: arr: 要遍历的数组 item : 数组里的每一个元素 in: 特殊的语法
<div id="app"> <ul> <li v-for="(item,i) in arr"> <span>{{i+1}}</span> <span>{{item.name}}</span> <span>{{item.age}}</span> <span>{{item.sex}}</span> </li> </ul> </div> <script> let vm = new Vue({ el:'#app', data:{ arr:[ {name:'xiaoming', age :18, sex: "男"}, {name:'xiaoming', age :18, sex: "男"}, {name:'xiaoming', age :18, sex: "男"} ] } }) </script>
7.v-bind绑定属性
<div id="app"> <!--绑定属性--> <img v-bind:src="imgSrc" alt=""> <!--简写--> <img :src="imgSrc" alt=""> <!--class绑定 : 绑定的是字符串的类名--> <h2 :class="'red'">class绑定</h2> <h2 :class="['red', 'pink']">class绑定</h2> <h2 :class="red">不写引号class绑定,去vm实例中找</h2> <h2 :class="{red : flag, pink:true}">以对象的方式去写,通过布尔值判定,key是style里面的类名</h2> <!--三元表达式: 当flag为true,就有red样式, 否则有pink样式--> <h2 :class="[flag?red:pink]">三元表达式</h2> </div> <script> let vm = new Vue({ el:'#app', data:{ imgSrc:'1.png', red:'red', flag:true } }) </script>
8.v-on添加事件
<div id="app"> <button v-on:click="num++">点击+1</button> <h1>{{num}}</h1> <!--简写 小括号没有参数, 可以省略--> <button @click="fn('hello')">点我弹框</button> <h1>{{fn()}}</h1> <!--点击切换颜色--> <button @click="change" :class="{red: flag}">点击切换颜色</button> </div> <script> let vm = new Vue({ el:'#app', data:{ num:0, flag: true }, //在methods定义方法 methods:{ fn:function (sayHi) { //console.log(sayHi) return 11; }, change: function () { //此时的this是实例对象 console.log(this.flag) this.flag = !this.flag; } } }) </script>
9.v-class 类名
v-style 与v-class用法大致一样 这个我就不写了
<style> .red { background: red; } .blue { width: 100px; height: 100px; background: blue; } </style> <div id="box"> <div style="width: 100px;height: 100px;" v-bind:class='{red:isred}'></div> <!--<div style="width: 100px;height: 100px;" v-bind:class='isred?"red":"blue"'></div>--> <!--三元运算符方式--> <!--<div style="width: 100px;height: 100px;" v-bind:class='[{red:"isred"}]'></div>--> </div> <script> new Vue({ el: "#box", data(){ return { isred:false } } }) </script>
10.v-pre 把标签内部的元素原位输出
<div id="box"> <div v-pre>欢迎--{{msg}}</div> </div> <script> new Vue({ el:"#box", data(){ return{ msg:"111111" } } }) </script>
二、事件修饰符
7. .stop 阻止自身的冒泡事件
<div id="app"> <!-- .stop 阻止自身的冒泡事件--> <div @click="divClick"> <button @click.stop="btnClick">点击</button> </div> </div> <script> var vm = new Vue({ el:'#app', data:{}, methods:{ divClick :function () {console.log("触发了div的点击事件")}, btnClick :function () {console.log("触发了btn的点击事件")} } }) </script>
- .prevent 阻止默认事件
<div id="app"> <!--.prevent 阻止默认事件--> <a href="http://www.baidu.com" @click.prevent="linkClick">百度一下</a> </div> <script> var vm = new Vue({ el:'#app', data:{}, methods:{ linkClick :function () {console.log("触发了a的点击事件")} } }) </script>
- .capture 添加事件侦听器时使用事件捕获模式 : 用捕获的模式来触发
<div id="app"> <!--.capture 添加事件侦听器时使用事件捕获模式 : 用捕获的模式来触发--> <div @click.capture="divClick"> <button @click="btnClick">点击 <span @click="linkClick">里面的事件</span> </button> </div> </div> <script> var vm = new Vue({ el:'#app', data:{}, methods:{ divClick :function () {console.log("触发了div的点击事件")}, btnClick :function () {console.log("触发了btn的点击事件")}, linkClick :function () {console.log("触发了a的点击事件")} } }) </script>
- .self : 阻止自己身上的冒泡行为
<div id="app"> <!--.self : 阻止自己身上的冒泡行为--> <div @click.self="divClick"> <button @click="btnClick">点击 <span @click="linkClick">里面的事件</span> </button> </div> </div> <script> var vm = new Vue({ el:'#app', data:{}, methods:{ divClick :function () {console.log("触发了div的点击事件")}, btnClick :function () {console.log("触发了btn的点击事件")}, linkClick :function () {console.log("触发了a的点击事件")} } }) </script>
- .once 事件只触发一次
<div id="app"> <!--.once 事件只触发一次--> <a href="http://www.baidu.com" @click.prevent.once="linkClick">百度一下</a> </div> <script> var vm = new Vue({ el:'#app', data:{}, methods:{ linkClick :function () {console.log("触发了a的点击事件") 2b4ea } } }) </script>
相关文章推荐
- vue.js常用的事件修饰符
- 从零开始学 Web 之 Vue.js(一)Vue.js概述,基本结构,指令,事件修饰符,样式
- Vue基础知识之常用属性和事件修饰符(二)
- Vue实践--指令和事件
- Vue 框架-03-键盘事件、健值修饰符、双向数据绑定
- 又一款MVVM组件 Vue基础语法和常用指令(1)
- vue事件修饰符
- Vue.js 系列教程 1:渲染,指令,事件
- vue入门-常用指令操作
- Vue.js事件修饰符解释
- vue指令的定义及常用指令
- Vue 学习笔记 1.0 --- 基本概念 && 常用指令
- Vue.js常用指令汇总(v-if、v-for等)
- Vue.js常用指令汇总(v-if、v-for等)
- Vue.js常用指令之循环使用v-for指令教程
- Vue常用指令_V-model
- 《vue2.0 框架学习》--键盘事件和修饰符
- vue 指令和修饰符
- vue常用指令
- Vue常用指令及父子传值