zoukankan      html  css  js  c++  java
  • Vue mustache语法&常用指令

    mustache

    内容渲染

    使用mustache语法{{变量}}进行渲染操作,它将会从Vue实例中查找这个变量。

    image-20201120144245653

    <body>
        <div id="app">
            <p>{{ msg }}</p>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: "#app",
                data: {
                    msg: "HELLO,WORLD",
                }
            })
        </script>
    </body>
    

    四则操作

    mustache语法在渲染时支持四则操作,如下所示:

    image-20201120144455173

    <body>
        <div id="app">
            <p>{{ num1 + num2 }}</p>
            <p>{{ num1 * num2 }}</p>
            <p>{{ num1 - num2 }}</p>
            <p>{{ num1 / num2 }}</p>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: "#app",
                data: {
                    num1: 200,
                    num2: 100,
                }
            })
        </script>
    </body
    

    Vue指令

    v-once

    当标签中添加该属性指令时,标签渲染的内容将是固定的不会随着数据层数据的动态改变而进行改变。

    指令:v-once

    <body>
        <div id="app">
            <p>{{ num1 + num2 }}</p>
            <p v-once>{{ num1 + num2 }}</p>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: "#app",
                data: {
                    num1: 200,
                    num2: 100,
                }
            })
        </script>
    </body>
    

    v-html

    当标签中添加该属性指令时,该标签渲染的内容将会以HTML代码呈现。

    注意,该属性指令应该通过等号绑定一个数据

    image-20201120145406980

    <body>
        <div id="app">
            <p v-html="msg"></p>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: "#app",
                data: {
                    msg:"<a href='http://www.google.com/'>谷歌</a>"
                }
            })
        </script>
    </body>
    

    v-text

    这个属性指令和直接使用{{}}渲染内容无太大差异,如果渲染内容是一个HTML标签,其本质原理都是将<替换成&lt;,将>替换成&gt;

    这会预防XSS攻击。

    image-20201120145517824

    <body>
        <div id="app">
            <p v-text="msg"></p>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: "#app",
                data: {
                    msg:"<a href='http://www.google.com/'>谷歌</a>"
                }
            })
        </script>
    </body>
    

    v-show

    该属性指令为false时将该标签将添加display:none的样式。

    image-20201120145712258

    <body>
        <div id="app">
            <p v-show="false">{{msg}}</p>
            <p v-show="true">{{msg}}</p>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: "#app",
                data: {
                    msg:"HELLO,WORLD"
                }
            })
        </script>
    </body>
    

    v-pre

    该属性指令会将标签中的内容按照原本格式进行呈现,类似于<pre>标签。

    image-20201120145812447

    <body>
        <div id="app">
            <p v-pre>{{msg}}</p>
            <p>{{msg}}</p>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: "#app",
                data: {
                    msg:"HELLO,WORLD"
                }
            })
        </script>
    </body>
    

    v-clock

    在网络情况较差的环境下,可能会出现模板渲染不及时的问题。

    使用v-cloak属性指令可挡住{{}}模板语法,使用户获得更好的体验。

    尝试将以下代码中的setTimeout去除,以查看效果。

    注意:需要手动添加样式

    <style>
        [v-cloak]{
            display: none;
        }
    </style>
    
    <body>
    <div id="app">
        <p v-cloak>{{msg}}</p>
    </div>
    <script src="./vue.js"></script>
    <script>
        setTimeout(() => {
            const app = new Vue({
                el: "#app",
                data: {
                    msg: "HELLO,WORLD"
                }
            })
        }, 3000)
    </script>
    </body>
  • 相关阅读:
    【转】读《冰鉴》有感:职场生存术——企业观人十一招
    [转]msn主要端口问题
    关于linux下的openmp编程基础[转]
    C#运用正则表达式智能获取html模版页中模版信息的应用
    获取当前程序文件的路径
    ASP对UTF8编码支持有问题
    论.NET反射、委托技术与设计模式关系
    序列化与反序列化
    利用反射将数据读入实体类
    随心所欲操作Enum枚举类型
  • 原文地址:https://www.cnblogs.com/plyc/p/14812546.html
Copyright © 2011-2022 走看看