一、v-show

  写法:v-show="表达式"

  适用于切换频率较高的场景

  特点:不展示的DOM元素未被移除,仅仅是隐藏

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>条件渲染</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <div id="container">
        <h2 v-show="isFlag">欢迎来到{{city}}</h2>
        <button @click="showMessage">点击</button>
    </div>
    <script type="text/javascript">
        new Vue({
            el:"#container",
            data:{
                city:"徐州",
                isFlag: true
            },
            methods: {
                showMessage(){
                    this.isFlag = ! this.isFlag
                }
            },
        })
    </script>
</body>
</html>

二、v-if

  写法:

    v-if="表达式"

    v-else-if="表达式"

    v-else-if="表达式"

    v-else

  适用于切换频率低的情况

  不展示的DOM被直接删除

  注意:v-if和v-else-if一起使用,不能被打断

  template和v-if配合使用,且不影响代码块 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>条件渲染v-if</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <div id="container">
        <h2 v-show="isFlag">显示n的值为{{num}}</h2>
        <button @click="showMessage">点击</button>
        <div v-if="num===1">北京</div>
        <div v-else-if="num===2">上海</div>
        <div v-else-if="num===3">深圳</div>
        <div v-else>广州</div>

        // template和v-if配合使用,且不影响代码块
        <template v-if="num===0">
            <div>123</div>
            <div>456</div>
        </template>
       

    </div>
    <script type="text/javascript">
        new Vue({
            el:"#container",
            data:{
                num:0,
                isFlag: true
            },
            methods: {
                showMessage(){
                    this.num++
                    console.log(this.num)
                }
            },
        })
    </script>
</body>
</html>