zoukankan      html  css  js  c++  java
  • 从零开始学VUE之模板语法(插值操作)

    插值操作

    {{}}语法

    新建InsertValue.html,使用双大括号可以获取data中的值,可以写一些简单的表达式,比如加减乘除

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>插入值</title>
        <script src="../../js/vue.js"></script>
    </head>
    <body>
        <div id="app">
    <!--        默认取值-->
            <div>{{message}}</div>
    <!--        拼接其他默认的值-->
            <div>{{message}},other with!</div>
    <!--        简单表达式-->
            <div>{{message + message}}</div>
    <!--        取多值-->
            <div>{{message}},{{message}}</div>
    
        </div>
    </body>
    <script>
        // 创建vue
        const vue = new Vue({
            el: '#app',
            data: {
                message: 'hello vue js!'
            }
        })
    </script>
    </html>
    复制代码

    运行

    v-once指令

    只加载一次,加载完成后,不能修改

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>插入值</title>
        <script src="../../js/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <div v-once>{{message}}</div>
            {{setMessage()}}
        </div>
    </body>
    <script>
        // 创建vue
        const vue = new Vue({
            el: '#app',
            data: {
                message: 'hello vue js!'
            },
            methods:{
                setMessage(){
                    this.message = "尝试改变message";
                }
            }
        })
    </script>
    </html>
    复制代码

    运行效果

    v-html指令

    该指令可以解析字符串中存在的html代码

    新建v-html.html

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>插入值</title>
        <script src="../../js/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <div>{{message}}</div>
            <div v-html="message"></div>
        </div>
    </body>
    <script>
        // 创建vue
        const vue = new Vue({
            el: '#app',
            data: {
                message: '<h1>hello vue js!</h1>'
            }
        })
    </script>
    </html>
    复制代码

    运行效果

    通过执行结果可以看出,通过双大括号直接取值,不会解析HTML标签,如果需要解析,那么需要通过v-html指令

    v-text指令(不用)

    和双大括号取值是一样的,但是一般不用,应为它只能取字符串,并且会覆盖标签内的内容

    新建v-text.html

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>插入值</title>
        <script src="../../js/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <div v-text="message">彼岸舞</div>
        </div>
    </body>
    <script>
        // 创建vue
        const vue = new Vue({
            el: '#app',
            data: {
                message: 'hello vue js!'
            }
        })
    </script>
    </html>
    复制代码

    运行效果

    v-pre指令

    添加这个指令后vue 不会解析这个指令标记下vue语法,比如我们需要展示双大括号的时候

    新建v-pre.html

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>插入值</title>
        <script src="../../js/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <div>{{message}}}</div>
            <div v-pre>{{message}}}</div>
        </div>
    </body>
    <script>
        // 创建vue
        const vue = new Vue({
            el: '#app',
            data: {
                message: 'hello vue js!'
            }
        })
    </script>
    </html>
    复制代码

    运行效果

    v-cloak指令

    可以加在 #app 上防止vue未加载完成,页面出现双大括号语法闪动的问题

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>插入值</title>
        <script src="../../js/vue.js"></script>
        <style>
            [v-cloak] {
                display: none;
            }
        </style>
    </head>
    <body>
        <div id="app" v-cloak>
            <div>{{message}}}</div>
        </div>
    </body>
    <script>
        // 创建vue
        /**
         * 使用定时器模拟vue的加载延迟
         * 在vue加载完成之前页面是有v-cloak的
         * 在vue加载完成之后页面是没有v-cloak的
         * 所以通过属性选择器,对有v-cloak的元素进行样式设置,可以防止闪动问题
         */
        setTimeout(function (){
            const vue = new Vue({
                el: '#app',
                data: {
                    message: 'hello vue js!'
                }
            })
        },1000)
    </script>
    </html>
    复制代码

    运行效果,如果没有样式,如果不加样式,会有闪动一下,先展示{{xxx}},然后改为hell...!

    作者:彼岸舞

    时间:2021531

    内容关于:VUE

    本文属于作者原创,未经允许,禁止转发

  • 相关阅读:
    【阿里笔试2】给定一组只包含数字的字符串,请恢复到有效的非私有网段地址组合
    【阿里笔试1】 把一个数组分成四份,三个分割点不算进求和中,使得每份的和要相同。
    【转载】Java基础之String中equals,声明方式,等大总结
    8-网易人力资源部门面试
    登录页面简单模板
    微机原理笔记(2)------8255A芯片
    微机原理笔记(1)------8259A芯片
    数据库复习笔记(4)------关系数据
    数据库复习笔记(3)------E-R模型
    数据库复习笔记(2)------关系代数
  • 原文地址:https://www.cnblogs.com/flower-dance/p/14832070.html
Copyright © 2011-2022 走看看