vue模版语法-{{}}/v-text/v-html/v-once

一、{{}}双括号:用于文本渲染

1、 {{变量名}}:data中返回对象的变量名

2、{{js表达式}}:可以直接进行js表达式处理

3、注意:双大括号中不要写等式书写

二、v-text 指令,用于文本渲染

1、为了解决双大括号渲染数据出现闪烁问题

三、v-cloak 指令:用于隐藏尚未完成编译的DOM模板

原理:先隐藏,编译完成后再显示

1、定义样式:将带有 v-cloak 指令的标签属性

2、在需要被解决闪烁问的元素加上v-cloak

四、v-html:用于输出真正的HTML内容(v-text 不管什么都当文本输出)

注意:v-html 遇到<script>标签和vue语法代码会被忽略,直接显示,防止xss攻击

五、v-once 一次性插值,当后面数据更新后,视图不会被更新

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        [v-cloak]{
            display:none;
        }
    </style>
</head>
<body>
    <!--
        一、{{}}双括号:用于文本渲染
        {{变量名}}:data中返回对象的变量名
        {{js表达式}}:可以直接进行js表达式处理
        注意:双大括号中不要写等式书写
        二、v-text 指令,用于文本渲染
        1、为了解决双大括号渲染数据出现闪烁问题
        三、v-cloak 指令:用于隐藏尚未完成编译的DOM模板
        原理:先隐藏,编译完成后再显示
        1、定义样式:将带有 v-cloak 指令的标签属性
        2、在需要被解决闪烁问的元素加上v-cloak
        四、v-html:用于输出真正的HTML内容(v-text 不管什么都当文本输出)
        注意:v-html 遇到<script>标签和vue语法代码会被忽略,直接显示,防止xss攻击
        五、v-once 一次性插值,当后面数据更新后,视图不会被更新
    -->
    <!-- 定义根节点-->
    <div id="app" v-cloak>
        <p>双括号渲染:{{name}},年龄:{{age-2}}</p>
        <p>js表达式:{{Math.abs(age)}}</p>
        <p>js表达式:{{age>0?'a':age}}</p>

        <!--v-text 文本渲染-->
        <h3>v-text 文本渲染</h3>
        <p v-text="name"></p>
        <p v-text="age+100"></p>
        <!--v-html -->
        <h3>v-html 渲染</h3>
        <p>v-text:<span v-text="htmlcontent"></span></p>
        <p>v-html:<span v-html="htmlcontent"></span ></p>
        <!--v-once 一次性插值 -->
        <h3>v-html 渲染</h3>
        <p v-once>这个值不会被改变:{{age}}<span>{{name}}</span></p>
    </div>
    <!--引入vue库-->
    <script src="./node_modules/vue/dist/vue.global.js"></script>
    <!--编写业务逻辑-->
    <script type="text/javascript">
        const {createApp} = Vue;
        const app=createApp({
            data(){
                return{
                    name:'helloworld',
                    age: -200,
                    htmlcontent:'<span style="color:red">哈哈哈哈<script>alert("aaaa")<\/script></span>'
                }
            }
        }).mount('#app');


    </script>
</body>
</html>
相关推荐
全栈前端老曹几秒前
【ReactNative】页面跳转与参数传递 - navigate、push 方法详解
前端·javascript·react native·react.js·页面跳转·移动端开发·页面导航
老华带你飞1 小时前
考试管理系统|基于java+ vue考试管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
_Kayo_1 小时前
React上绑定全局方法
前端·javascript·react.js
练习前端两年半1 小时前
【Vue3 高级技巧】函数重载+Watch:打造类型安全的通用事件监听 Hook
前端·javascript·vue.js
一只小鸟儿2 小时前
门户短信发送验证码及验证功能
前端·javascript·jquery
talenteddriver2 小时前
mysql: MySQL中between子句和limit子句的区别
前端·javascript·数据库
张较瘦_2 小时前
前端 | 代码可读性 + SEO 双提升!HTML 语义化标签实战教程
前端·html
q_19132846953 小时前
基于SpringBoot+Vue.js的高校竞赛活动信息平台
vue.js·spring boot·后端·mysql·程序员·计算机毕业设计
我是小邵3 小时前
【踩坑实录】一次 H5 页面在 PC 端的滚动条与轮播图修复全过程(Vue + Vant)
前端·javascript·vue.js
2501_946230983 小时前
Cordova&OpenHarmony外观主题设置
android·javascript