2020-11-09

vue常用指令

 v-bind:
    v-on:
    v-text:  跟插值表达式功能类似,可以向指定的元素中加入数据   
    v-html:  可以将带有标签的字符串,渲染到指定的元素中
    v-show:  指令给一个bool类型,如果bool类型为true,显示,否则false就是不显示
    v-if:    指令给一个bool类型,如果bool类型为true,显示,否则false就是不显示

    v-if 和 v-show的区别:
        条件为真是,都可以显示dom元素,当条件为假时,v-if是删除dom节点,v-show是隐藏dom节点
        如果在页面频繁使用时,使用v-show,如果页面使用只有初始化一次是否显示时,使用v-if
        示例:    
        <template v-show="isShow">
            
        </template>
        他是透明标签,不会渲染任何的标签,然后只有v-if可以控制他的添加或删除,v-show不好使

    v-for:
        循环数组:  v-for="(item,index) in arr"   item表示的是数组中的每一项,index表示的是每一项的索引
        循环对象:  v-for="(value,key) in obj"    value表示对象中的属性值,key表示对象中的属性
        循环数字:  v-for="(n,i) in num"          n表示从1到指定的数字,i表示从0到多
        循环字符串:v-for="(s,i) in str"          s表示循环字符串中的每一个字符,i表示字符的索引

实现单选效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="vue.js"></script>
    <style>
        /* 选种样式 */
        .active{
            color: red; 

        }
    </style>
</head>
<body>
    <div id="app">
        <!-- 如果p元素的下表和active相同就添加选种样式 -->
         <p @click="checked(k)" :class="{'active':k==active}" v-for="(i,k) in 5">{{i}}</p>
    </div>
   
    
</body>
<script>

   new Vue({
       el:"#app",
       data:{
        active:0 //被选中的元素的下标
       },
       methods:{
            
            checked(k){  //谁点击active就等于谁的下标
               
               this.active=k
                 
            }

       }

   })

</script>
</html>

实现多选效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="vue.js"></script>
    <style>
        /* 选种样式 */
        .active{
            color: red; 

        }
    </style>
</head>
<body>
    <div id="app">
        <!-- 如果该条数据的ischecked属性为true就添加选中样式 -->
         <p @click="checked(k)" :class="{'active':i.ischecked}" v-for="(i,k) in arr">{{i.title}}</p>
    </div>
   
    
</body>
<script>

   new Vue({
       el:"#app",
       data:{
        //    渲染到页面的数据
        arr:[{title:"1",ischecked:false},{title:"1",ischecked:false},{title:"1",ischecked:false},{title:"1",ischecked:false},]
       },
       methods:{
            
            checked(k){  //哪个元素点击该元素对应数据.ischecked就为true
               
               this.arr[k].ischecked=true
                 
            }

       }

   })

</script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值