• 15.内置指令


    v-text

    v-text的作用和插值语法很像,但是插值语法更加灵活,可以替换掉标签内部分内容;v-text只能替换标签内的整个内容。

    <body>
        <div id="root">
            <!-- 插值语法替换掉name -->
            <h2>你好,{{name}}</h2>
            <!-- v-text替换掉整个标签内容 -->
            <h2 v-text="str"></h2>
        </div>
    </body>
    <script>
        new Vue({
            el:"#root",
            data:{
                name:"世界",
                str:"hello, world"
            }
        })
    </script>
    

    显示结果:

    image-20220421075638524

    v-html

    v-html的作用和v-text的作用很像,但是v-html可以解析内容中的html语法,但是这种解析会带来安全隐患。在网站上动态渲染任何html是非常危险的,容易导致XSS攻击,一定要在可信的内容上使用v-html,不要用在用户提交的内容上。

    <body>
        <div id="root">
            <!-- v-html可以解析html, v-text不可以解析-->
            <h2 v-html="html"></h2>
            <h2 v-text="html"></h2>
        </div>
    </body>
    <script>
        Vue.config.productionTip = false
        new Vue({
            el:"#root",
            data:{
                html:"<h1> 我是h1 <h1>"
            }
        })
    </script>
    

    显示结果:

    image-20220421080118439

    v-cloak

    v-cloak是一个特殊指令,没有值,也没有实际意义。通常用来配合css来实现解决网速慢的时候vue.js文件还没获取到时展示{{}}的问题,在Vue创建实例并接管容器后,会删掉v-cloak属性。

    <style>
        /* 有v-cloak时不显示 */
        [v-cloak]{
            display:none;
        }
    </style>
    
    <body>
        <div id="root">
            <!-- v-cloak标签无实际意义,在VUE接管后,会去掉该属性 -->
            <h2 v-cloak>{{name}}</h2>
        </div>
    </body>
    <script>
        Vue.config.productionTip = false
        new Vue({
            el:"#root",
            data:{
                name:"世界",
            }
        })
    </script>
    

    v-once

    v-once所在的节点在初次动态选然后,就视为静态内容,以后数据的改变不会引起v-once所在结构的更新,用于优化性能。

    <body>
        <div id="root">
            <!-- v-once -->
            <h2 v-once>{{n}} </h2>
            <h2>{{n}} </h2>
            <button @click="n++">点我n+1</button>
        </div>
    </body>
    <script>
        Vue.config.productionTip = false
        new Vue({
            el:"#root",
            data:{
                n:1
            }
        })
    </script>
    

    显示效果:

    image-20220421084507921

    v-pre

    跳过比所在节点的编译过程,在没有使用指令语法,插值语法的节点中,跳过节点编译,可以加快节点编译。

    <body>
        <div id="root">
            <!-- v-pre -->
            <h2>{{name}}</h2>
            <!-- v-pre跳过了编译,因此显示{{name}} -->
            <h2 v-pre>{{name}}</h2>
        </div>
    </body>
    <script>
        Vue.config.productionTip = false
        new Vue({
            el:"#root",
            data:{
                name:"世界"
            }
        })
    </script>
    

    显示效果:

    image-20220421084819249

    总结

    常用的内置指令

    v-on 绑定事件监听,一般可以写成@
    v-bind 绑定解析表达式
    v-model 双向数据绑定
    v-if 如果为true,当前标签才会输出到页面
    v-else 如果为false,当前标签才会输出到页面
    v-show 通过控制display样式来控制显示/隐藏
    v-for 遍历数组/对象
    v-text 更新元素的textContent
    v-html 更新元素的innerHTML
    v-cloak 配合css防止{{}}在VUE还没有加载的时候出现
  • 相关阅读:
    【MISC】ctf-想要种子吗?——jpg图片隐写
    【MISC】ctf-白哥的鸽子——jpg图片隐写
    关于MySQL递归查询,从子类ID查询所有父类
    关于lambdaQueryWrapper中常用方法
    Jmeter之正则表达式提取器+BeanShell断言--将返回结果导出到本地文件
    SQLMap开源渗透工具-SQLMap注入安全测试
    jmeter之配置元件-HTTP授权管理器(HTTP Authorization Manager)
    Jmeter实战大全(持续更新)
    Jmeter 之Ramp-up Period&固定定时器
    《从一万到一千万没有秘密》
  • 原文地址:https://www.cnblogs.com/jiangblog/p/16177178.html
Copyright © 2020-2023  润新知