暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

前端必备-Vue系列2-Vue常用指令和简单案例

酉时Coding课堂 2021-03-09
565

欢迎来到 晓添Coding课堂 本章节咱们来说一下Vue中常用的指令,不废话直接上干货

v-show

作用

根据表达值的真假,切换元素的显示和隐藏

代码

 <!DOCTYPE html>
 <html>
  <head>
   <meta charset="utf-8">
   <title></title>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  </head>
  <body>
   <div id="app">
   
   
   
    <img src="./img/xiaozhuang.jpg" v-show="flag">
   
    <span v-show="age >= 18">18岁以上才能看到哦</span>
   </div>
  </body>
  <script type="text/javascript">
   var app = new Vue({
    el:"#app",
    data:{
     flag:true,
     age:18
    }
   })
  </script>
 </html>


运行截图

总结

  • v-show指令的作用是根据真假切换元素的显示状态

  • 原理是修改元素的display属性,实现显示隐藏

小案例:点击按钮实现显示/隐藏

代码

 <!DOCTYPE html>
 <html>
  <head>
   <meta charset="utf-8">
   <title></title>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  </head>
  <body>
   <div id="app">
   
    <button type="button" @click="showOrHide()">点击隐藏/显示</button>
   
    <img src="./img/xiaozhuang.jpg" v-show="flag" />
   </div>
  </body>
  <script type="text/javascript">
   var app = new Vue({
    el:"#app",
    data:{
     // 默认显示
     flag:true
    },
    methods:{
     // 显示/隐藏函数
     showOrHide:function(){
      // 将值修改为上次的取反
      this.flag = !this.flag
     }
    }
   })
  </script>
 </html>

结果

v-if指令

作用

与v-show效果一样,通过真假控制页面是否显示指定元素

代码

 <!DOCTYPE html>
 <html>
  <head>
   <meta charset="utf-8">
   <title></title>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  </head>
  <body>
   <div id="app">
             
    <button type="button" @click="isShow">点我切换状态</button>
             
    <p v-if="show">v-if控制是否显示</p>
             
    <p v-show="show">v-show控制是否显示</p>
   </div>
  </body>
  <script type="text/javascript">
   var app = new Vue({
    el:"#app",
    data:{
     show:true
    },
    methods:{
     isShow:function(){
      this.show = !this.show
     }
    }
   })
  </script>
 </html>


运行截图

通过下方运行效果大家可以看出来,v-if隐藏是控制DOM也就是直接删除元素,而v-show是控制display

总结

  • v-if指令的作用可以根据表达式 真假控制元素的显示状态

  • 与v-show的区别在于,v-if直接控制DOM树,v-show是控制display属性

  • 值为true是添加到dom中,false时从dom中移除

  • 频繁显示隐藏时使用v-show,反之使用v-if,前者性能消耗较小

v-bind指令

作用

设置元素属性,比如src,title,type等

代码

语法

 <div id="app">
     
     <img src="图片地址">
     
     <img v-bind:src="vue变量">
     
     <img :src="vue变量">
 </div>

案例代码

 <!DOCTYPE html>
 <html>
  <head>
   <meta charset="utf-8">
   <title></title>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   <style type="text/css">
    .active {
     width: 200px;
     height: 200px;
    }
   </style>
  </head>
  <body>
   <div id="app">
   
    <img v-bind:src="imgSrc" :class="isActive?'active':' '" @click="change"/>
   </div>
  </body>
  <script>
   var app = new Vue({
    el:"#app",
    data:{
     imgSrc:"./img/xiaozhuang.jpg",
     isActive:false
    },
    methods:{
     change:function(){
      this.isActive = !this.isActive
     }
    }
   })
  </script>
 </html>

运行截图

总结

  • v-bind可以为属性绑定值

  • 完整写法:v-bind:属性名="属性值"

  • 简写为::属性名="属性值"


v-for指令

作用

根据数据循环生成标签,并可以填充数据

代码

 <!DOCTYPE html>
 <html>
  <head>
   <meta charset="utf-8">
   <title></title>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  </head>
  <body>
   <div id="app">
    <h3>不带序号的前端路线</h3>
    <ul>
     <li v-for="item in arr">{{item}}</li>
    </ul>
   
    <h3>带序号的前端路线</h3>
   
    <ul>
     <li v-for="(item,index) in arr">{{index + 1}}、{{item}}</li>
    </ul>
   
    <h3>对象类型数据</h3>
   
    <p v-for="item in food">{{item.name}}</p>
   </div>
  </body>
  <script type="text/javascript">
   var app = new Vue({
    el:"#app",
    data:{
     // 声明课程数组
     arr:["HTML","CSS","JavaScript","jQuery"],
     // 对象数据
     food:[
      {"name":"河南烩面"},
      {"name":"陕西油泼面"}
     ]
    }
   })
  </script>
 </html>

运行截图

总结

  • v-for指令的作用是根据数据生成html列表结构

  • v-for经常和数组类型数据使用

  • 语法是(item,index) in 数据

v-for指令案例

代码

 <html>
  <head>
   <meta charset="utf-8">
   <title></title>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  </head>
  <body>
   <div id="list">
   
    <button type="button" @click="add">添加课程</button>
    <button type="button" @click="del">删除课程</button>
    <p v-for="item in arr">{{item.name}}</p>
   
   </div>
  </body>
  <script type="text/javascript">
   var app = new Vue({
    el:"#list",
    data:{
     arr:[
      {"name":"Coding课堂Vue课程"},
      {"name":"Coding课堂React课程"},
      {"name":"Coding课堂uni-app课程"}
     ]
    },
    methods:{
     add:function(){
      // 数组添加数据
      this.arr.push({"name":"添加的Vue课程"})
     },
     del:function(){
                     // 数组删除数据
      this.arr.shift()
     }
    }
   })
  </script>
 </html>

截图

v-model指令

作用

设置和获取表单元素的值(双向数据绑定)

代码

 <!DOCTYPE html>
 <html>
  <head>
   <meta charset="utf-8">
   <title></title>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  </head>
  <body>
   <div id="app">
   
    <button @click="getMsg">获取数据</button>
    <br>
   
    <input type="text" v-model="msg"/>
    <p>{{msg}}</p>
   </div>
  </body>
  <script type="text/javascript">
   var app = new Vue({
    el:"#app",
    data:{
     msg:"Coding课堂"
    },
    methods:{
     getMsg:function(){
      alert(this.msg)
     }
    }
   })
  </script>
 </html>


运行截图

总结

  • v-model指令可以便捷地设置和获取表单元素的值

  • 绑定的数据回合表单元素相关联,进行一个双向绑定

本节主要说了下Vue的一些常用指令,下一篇我们说几个Vue的实战案例,强化一下使用基础,欢迎持续关注。

本文若有任何看不懂,或者有错误的地方欢迎大家评论区留言,我时时关注哦


用你勤劳的双手点个赞吧,这将是我创作更多优质文章的动力!







文章转载自酉时Coding课堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论