指令基本概念
指令是带有v-前缀的特殊属性
vue.js指令的用途
在表达式的值改变时,将某些行为应用到DOM上
vue.js指令的书写规范
书写位置:任意的HTML元素的开始标签内
注意:一个开始标签内可写入多个指令,使用空格分隔
常见指令
1、v-show指令
作用:控制切换一个元素的显示和隐藏
语法:v-show=表达式
根据表达式结果的真假,确定是否显示当前元素
true表示显示该元素,false表示隐藏该元素
实例:
1 2 3 4 5 6 7 8 9 10 11
| <div id="box"> <div class="div1" v-show='true'></div>
</div> <script> var vm=new Vue({ el:'#box', data:{ } }) </script>
|
2、v-on指令
作用:为HTML元素绑定事件监听
语法:v-on:事件名称=’函数名称()’
简写:@事件名称=’函数名称()’
注意:函数定义在methods配置项中
实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <div id="box1"> <button v-on:click='fn()'>按钮1</button> <button @click='fn()'>按钮2</button>
<div class="div2" v-show='bol'></div> </div> <script> var vm=new Vue({ el:'#box1', data:{ bol:false }, methods:{ fn:function(){ console.log(1); console.log(this.bol); this.bol=!this.bol; } } }) </script>
|
3、v-model指令
作用:将用户的输入同步在视图上
语法:v-model=变量
注意:v-model指令必须绑定在表单元素上
实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <div id="box2">
<h1>{{msg}}</h1> <input type="text" v-model='msg' placeholder="请输入"> </div> <script> var vm=new Vue({ el:'#box2', data:{ msg:'hello unjianwu' } }) </script>
|
4、v-for指令
作用:遍历data中的数据,并在页面进行数据展示
语法:v-for=’(item,index) in arr’
itme表示每次遍历得到的元素
index表示item的索引,可选参数
实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <div id="box3">
<ul>
<li v-for='item in arr'>{{item}}</li> <li v-for='(item,index) in arr'>{{index+'.'}}{{item}}</li> </ul> </div> <script> var vm=new Vue({ el:'#box3', data:{ arr:['睡觉','shopping','coding','LOL'] } }) </script>
|
5、v-bind指令
作用:绑定HTML元素的属性
语法:v-bind:属性名=’表达式’
绑定一个属性:img v-bind:src=’myUrl’/
绑定多个属性:img v-bind=’{src:myUrl,title:msg}’/
实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <div id="box4"> <button class="red">按钮变色</button> <button v-bind:class='{red:false}'>按钮变色</button>
<ul> <li v-for='item in arr'>{{item}}</li> <li v-for='(item,index) in arr' @click='fn1(index)' v-bind:class='{bj:item.bol}'>{{index+'.'}}{{item.des}}</li> </ul>
</div> <script> var vm=new Vue({ el:'#box4', data:{ arr:[ {des:'睡觉',bol:false}, {des:'打豆豆',bol:false}, {des:'吃饭',bol:false}, {des:'打死豆豆',bol:false} ] }, methods:{ fn1:function(index){ for(var i=0;i<this.arr.length;i++){ this.arr[i].bol=false; } this.arr[index].bol=true; } } }) </script>
|
总结:
v-show:控制切换一个元素的显示和隐藏
v-on:为HTML元素绑定事件监听
v-model:将用户的输入同步到视图上
v-for:遍历data数据,并在页面进行数据展示
v-bind:绑定HTML元素的属性