← 返回首页
Vue基础教程(五)
发表时间:2020-04-11 13:33:18
讲解Vue的条件渲染

Vue包含两种条件渲染指令: - v-if:条件指令 - v-show:条件指令

v-if 例如:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document Title</title>
</head>

<body>
    <!-- id标识vue作用的范围 -->
    <!-- 如果要将模型数据绑定在html属性中,则使用 v-bind 指令
     此时title中显示的是模型数据
   -->
    <div id="app">
        <!--可以使用单个复选框绑定到布尔值-->
        <input type="checkbox" v-model="accept">接受霸王条款
        <!-- v:if条件指令:还有v-else、v-else-if 切换开销大 -->
        <h1 v-if="accept">用户接受此条款</h1>
        <h1 v-else>用户不接受此条款</h1>
    </div>
    <!-- 引入开发环境的vue.js版本,包含了有帮助的命令行警告 ,这样使用的也是最新版本-->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
       // 创建一个vue对象
       let vm = new Vue({
            el: '#app',//绑定vue作用的范围,el是element的简写。
            data: {//定义页面中显示的模型数据或者说为属性
               accept: false
            }
        })
    </script>
</body>
</html>

运行效果如下:

v-show 上面的例子,可以使用v-show改写,和上面的功能完全相同,如下:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document Title</title>
</head>

<body>
    <!-- id标识vue作用的范围 -->
    <!-- 如果要将模型数据绑定在html属性中,则使用 v-bind 指令
     此时title中显示的是模型数据
   -->
    <div id="app">
        <!--可以使用单个复选框绑定到布尔值-->
        <input type="checkbox" v-model="accept">接受霸王条款
        <!-- v:if条件指令:还有v-else、v-else-if 切换开销大 -->
        <h1 v-show="accept">用户接受此条款</h1>
        <h1 v-show="!accept">用户不接受此条款</h1>
    </div>
    <!-- 引入开发环境的vue.js版本,包含了有帮助的命令行警告 ,这样使用的也是最新版本-->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
       // 创建一个vue对象
       let vm = new Vue({
            el: '#app',//绑定vue作用的范围,el是element的简写。
            data: {//定义页面中显示的模型数据或者说为属性
               accept: false
            }
        })
    </script>
</body>
</html>

v-if与v-show对比

一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。