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>
相关推荐
默_笙5 分钟前
🚅 地铁的"回头路、存档点与人工闸机"(下):LangGraph 的循环、持久化与中断
前端·javascript
flash俊杰12 分钟前
Zod Schema 驱动的 IPC 契约:从入参校验到状态机一致性的三层防御
javascript·typescript
一条溺水的鱼2 小时前
一次讲透 JS 原型链 —— prototype、__proto__ 和 constructor 到底啥关系
javascript
三乐2283 小时前
一文搞懂 JS 事件流:捕获、冒泡、事件委托
javascript·html
强尼5303 小时前
WeasyPrint 技术入门指南——用 Web 技术生成 PDF 的专业库使用详解
html
IMPYLH3 小时前
HTML 的 <slot> 元素
前端·网络·html
乐迪绘防伪油墨技术分享5 小时前
特种功能油墨选型指南:温变 / 遇水 / 荧光 / UV LED 技术对比与供应商参考
前端·html·uv
愛芳芳5 小时前
基于 Electron + Vue3 的仿 PC 微信客户端项目实战
前端·javascript·css·elementui·typescript·electron·vue
阿虎儿6 小时前
论 JavaScript 的怪异之处
javascript
你别说话了6 小时前
Vue实现高效拖拽效果 vue-Draggable
前端·vue.js