zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    前台隐藏或者看不见
    关于线程安全
    JAVA中的length属性和length()方法和size()方法的区别
    内存泄露和内存溢出
    配置tomcat,只需要启动一次
    ThickBox关闭本页,刷新父页
    Myeclipse断点问题
    解决windows远程(Telnet)最大连接数的问题
    父页刷新的方法
    Jsp页面大小写转换
  • 原文地址:https://www.cnblogs.com/lee-xingxing/p/11103938.html
Copyright © 2011-2022 走看看