• Vue08 -- 内置指令


    v-cloak

    描述:v-cloak不需要表达式,在Vue实例结束编译时从绑定的html元素中移除,通常和css的display:none;配合使用。当网速慢时,Vue没有加载出来时会出现“{{xxx}}”的字样,直到vue创建完实例,DOM才会被替换,所以屏幕会出现闪烁,还需要在css代码中加上:[v-cloak]:{display: none!important;} 联合使用即可,但在工程化的项目中使用webpack和vue-router时,项目的vue结构只有一个空的div,剩余的内容都是由路由去挂载完成的,所以不在需要使用,v-cloak只适用于简单的项目中

    <!DOCTYPE html>
    <html>
    <head>
        <title>Vue --- 内置指令</title>
        <script type="text/javascript" src="https://unpkg.com/vue/dist/vue.min.js"></script>
        <style type="text/css">
            [v-cloak]:{
                display: none!important;
            }
        </style>
    </head>
    <body>
        <div id="app" v-cloak>
            {{message}}
        </div>
        <script type="text/javascript">
            var app = new Vue({
                el:'#app',
                data:{
                    message:'这是一段话'
                }
            })
        </script>
    </body>
    </html>

     v-once

    描述:不需要表达式的指令,作用是定义它的元素或组件只渲染一次,包括元素或组件的所有子节点。首次渲染后,不再随数据的变化重新渲染,将被视为静态内容,改变message不会因为改变而使页面数据发生变动。

    <!DOCTYPE html>
    <html>
    <head>
        <title>Vue --- 内置指令</title>
        <script type="text/javascript" src="https://unpkg.com/vue/dist/vue.min.js"></script>
    </head>
    <body>
        <div id="app" >
            <span v-once>{{message}}</span>
            <div v-once>
                <span>{{message}}</span>
            </div>
        </div>
        <script type="text/javascript">
            var app = new Vue({
                el:'#app',
                data:{
                    message:'这是一段话'
                }
            })
        </script>
    </body>
    </html>

     v-if v-else-if v-else

    描述:和js一样作为判断条件时使用

    <body>
        <div id="app">
            <div v-if="state === 1">state等于1时</div>
            <div v-else-if="state === 2">state等于2时</div>
            <div v-else>其他</div>
        </div>
        <script type="text/javascript">
            var app = new Vue({
                el:'#app',
                data:{
                    state:1
                }
            })
        </script>
    </body>

    template

    描述:可以使用template复用代码,(加入key属性将不会复用,输入的内容也会被删除)

    <body>
        <div id="app">
            <template v-if="types === 'name'">
                <label>用户名:</label>
                <input placeholder="使用用户名方式" key = "name-input">
            </template>
            <template v-else>
                <label>邮箱:</label>
                <input placeholder="使用邮箱方式" key = "eamil-input">
            </template>
    
            <button @click="show">切换方式</button>
        </div>
        <script type="text/javascript">
            var app = new Vue({
                el:'#app',
                data:{
                    types:'name'
                },
                methods:{
                    show:function () {
                        this.types = this.types === 'name' ? 'email' : 'name' ;
                    }
                }
            })
        </script>
    </body>
  • 相关阅读:
    PAT 甲级 1027 Colors in Mars
    PAT 甲级 1026 Table Tennis(模拟)
    PAT 甲级 1025 PAT Ranking
    PAT 甲级 1024 Palindromic Number
    PAT 甲级 1023 Have Fun with Numbers
    PAT 甲级 1021 Deepest Root (并查集,树的遍历)
    Java实现 蓝桥杯VIP 算法训练 无权最长链
    Java实现 蓝桥杯VIP 算法训练 无权最长链
    Java实现 蓝桥杯 算法提高 抽卡游戏
    Java实现 蓝桥杯 算法提高 抽卡游戏
  • 原文地址:https://www.cnblogs.com/lee-xingxing/p/11103938.html
Copyright © 2020-2023  润新知