Vue.js入门笔记5

143 阅读1分钟

Vue.js入门笔记5

一、v-show的使用

v-show用来控制当前页面元素是否显示,底层通过display属性设置的,v-show的值是一个布尔类型,只要该布尔类型的值为true,那么相应的页面元素就会显示,否则不会显示

一个小案例:

该案例完成的功能是:当用户点击button按钮的时候,会不断的改变v-show属性的值,从而让h1标题中的内容在出现和消失这两种状态之间不断的转换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="test-V-Show">
        <input type="button" value="改变标题显示状态" @click="changeIsShow">
        <h1 v-show="isShow">这是标题内容</h1>
    </div>

    <script src="../vue/vue.js"></script>
    <script>
        const title = new Vue({
            el: "#test-V-Show",
            data: {
                isShow: true
            },
            methods: {
                changeIsShow() {
                    this.isShow = !this.isShow
                }
            }
        })
    </script>
</body>
</html>

更进一步:

v-show属性的值可以是任意逻辑表达式,如下面的案例中,当value>=18的时候,才会将标题显示出来

一个小案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>演示v-show</title>
</head>
<body>
<div id="app">
    <input type="button" value="反转标题显示状态" @click="addValue">
    <h1 v-show="value>=18">这是h1标题内容</h1>
</div>

<script src="../vue/vue.js"></script>
<script>
    const app = new Vue({
        el: "#app",
        data: {
            value: 17
        },
        methods: {
            addValue() {
                this.value++;
            }
        }
    })
</script>
</body>
</html>

二、v-if的使用

v-if的功能和v-show是相同的,但是它们的底层实现是不同的,v-if在底层是通过移除DOM树中的节点完成的元素的删除,这是比较耗时的操作,v-if的基本使用和v-show是相同的,把上面v-show的案例中v-show替换成v-if一样能完成相同的功能

三、v-bind的使用

v-bind用来改变元素的属性值,有两种用法: v-bind:属性名="属性值":属性名="属性值"

一个小案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用v-bind</title>
    <style>
        .isShow {
            display: none;
        }
    </style>
</head>
<body>

<div id="app">
    <input type="button" value="添加边框" @click="changeIsActive">
    <img v-bind:src="picUrl" alt="" :title="picTitle" :class="isActive?'isShow':''">
    <img v-bind:src="picUrl" alt="" :title="picTitle" :class="{isShow:isActive}">
</div>

<script src="../vue/vue.js"></script>
<script>
    const app = new Vue({
        el: "#app",
        data: {
            isActive: true,
            picUrl: "https://p26-passport.byteacctimg.com/img/mosaic-legacy/3795/3044413937~300x300.image",
            picTitle: "这是图片的提示信息"
        },
        methods: {
            changeIsActive: function () {
                console.log(this.isActive)
                this.isActive = !this.isActive
            }
        }
    })
</script>
</body>
</html>