关于Vue的学习—本地应用(二)

147 阅读1分钟

1.v-show指令

v-show:根据表达式的真假切换元素的显示和隐藏。
基础代码:

  <div id="app">
  		<img v-show="true" src ="地址">
        <img v-show="isShow" src ="地址">
        <img v-show="age>=18" src ="地址">
    </div>
var app = new Vue({
    el:"#app",
    data:{
        isShow:false,
        age:17
    }
})

整体案例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-show指令</title>
</head>
<body>
    <div id="app">
        <input type="button" value="切换转换状态" @click="changeIsShow">
        <input type="button" value="累加年龄" @click="addAge">
        <img v-show="isShow" src ="images/1.jpg"  alt="" width="100px" height="100px">
        <img v-show="age>=18" src ="images/1.jpg" alt="" width="100px" height="100px">
    </div>
    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el:"#app",
            data:{
                isShow:false,
                age:17
            },
            methods:{
                changeIsShow:function(){
                    this.isShow = !this.isShow;
                },
                addAge:function(){
                    this.age++;
                }
            },
        })
    </script>
</body>
</html>

运行结果:
在这里插入图片描述
总结:
①v-show指令的作用是:根据真假切换元素的显示状态。
②原理是修改元素的display,实现显示隐藏。
③指令后面的内容,都会解析为布尔值。
④值为true元素,显示值为flash元素隐藏。
⑤数据改变之后,对应元素的显示状态会同步更新。

2.v-if指令

v-if:根据表达式的真假切换元素的显示状态。
基础代码:

 <div id = "app">
        <p v-if="isShow">zhangjibin</p>
        <P v-show="isShow">zhangjibin v- show 修饰</P>
        <h2 v-if="表达式">热死啦</h2>
    </div>
var app = new Vue({
            el:"#app",
            data:{
                isShow:false,
            }
        })

整体案例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-if指令</title>
</head>
<body>
    <div id = "app">
        <input type="button" value="状态转换" @click="toggleIsShow">
        <p v-if="isShow">zhangjibin</p>
        <P v-show="isShow">zhangjibin v- show 修饰</P>
        <h2 v-if="temperature>=35">热死啦</h2>
    </div>
    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el:"#app",
            data:{
                isShow:false,
                temperature:40
            },
            methods:{
                toggleIsShow:function(){
                this.isShow=!this.isShow;
                }
            }
        })
    </script>
</body>
</html>

运行结果:
在这里插入图片描述
转换后的结果:
在这里插入图片描述

总结:
①v-if指令的作用是:根据表达式的真假切换元素的显示状态。
②本质是通过操纵dom元素来切换显示状态。
③表达式的值为true,元素存在于dom树中,为false,从dom树中移除。
④频繁切换v-show,反之使用v-if,前者的切换消耗小。

3.v-bind指令

v-bind:为元素绑定属性。
基础代码:

<div id = "app">
        <img v-bind:src="imgSrc">
        <img :src="imgSrc" :title="imgTitle+'!!!!'" 
        :class="isActive?'active':''"@click="toggleActive">
        <img :src="imgSrc" :title="imgTitle+'!!!!'" 
        :class="{active:isActive}" @click="toggleActive">
    </div>
var app = new Vue({
            el:"#app",
            data:{
                imgSrc:"图片地址",
                imgTitle:"张慕南北",
                isActive:false
            }
        })

整体案例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-bind指令</title>
    <style>
        .active{
            border: 1px solid red;
        }
    </style>
</head>
<body>
    <div id = "app">
        <img v-bind:src="imgSrc" alt="">
        <br>
        <img :src="imgSrc" alt="" :title="imgTitle+'!!!!'" 
        :class="isActive?'active':''"@click="toggleActive">
        <br>
        <img :src="imgSrc" alt="" :title="imgTitle+'!!!!'" 
        :class="{active:isActive}" @click="toggleActive">
    </div>
    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el:"#app",
            data:{
                imgSrc:"http://www.itheima.com/images/logo.png",
                imgTitle:"张慕南北",
                isActive:false
            },
            methods:{
                toggleActive:function(){
                    this.isActive = !this.isActive
                }
            }
        })
    </script>
</body>
</html>

总结:
①v-bind指令的作用是:为元素绑定属性。
②完整写法: v-bind:属性名。
③简写的话可以省略v-bind,只保留:属性名。
④需要动态的增删class建议使用对象的方式。