Vue3指令(二)--v-text、v-html数据渲染,计算属性

目录

(一)数据渲染

1.插值表达式渲染数据

1.1实战案例

1.1.1代码:

1.1.2实现截图:

2.使用v-text和v-html来渲染数据

2.1实战案例:

2.1.1代码:

2.1.2实现截图:

(二)计算属性

1.实战案例:

[①computed() 会自动从其计算函数的返回值上推导出类型:](#①computed() 会自动从其计算函数的返回值上推导出类型:)

2.实现截图


(一)数据渲染

1.插值表达式渲染数据

1.1实战案例

使用插值表达式是最直接的数据渲染方式,使用案例来展示:

1.1.1代码:
html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第一个Vue</title>
    <script src="vue.global.js"></script>
</head>
<body>
    <div id="app">
        {{msg}}
    </div>
    <script>
        Vue.createApp({
            setup(){
                return {
                    msg:"yes"
                }
            }
        }).mount("#app")
    </script>
</body>
</html>
1.1.2实现截图:

2.使用v-text和v-html来渲染数据

2.1实战案例:
2.1.1代码:

①v-html能够解析出网址格式

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据渲染</title>
</head>
<body>
    <div id="app">
        <h3>插值表达式渲染:{{obj.title}}</h3>
        <h3 v-text="obj.title">v-text渲染数据</h3>
        <h3 v-text="obj.url">v-text渲染网址</h3>
        <h3 v-html="obj.url">v-html渲染网址</h3>
    </div>
    <script type="module">
        import {createApp,reactive} from './vue.esm-browser.js'
        createApp({
            setup(){
                const obj=reactive({
                    title:"v-text数据渲染",
                    url:"<i style='color:blue'>www.baidu.com<i/>"
                })
                return{
                    obj
                }
            }
        }).mount("#app")
    </script>
</body>
</html>
2.1.2实现截图:

(二)计算属性

正常情况下函数的执⾏是及时的,被调⽤就会执⾏;⽽计算属性是有缓存的,计算属性根据其依赖的响 应式数据变化⽽重新计算

1.实战案例:

定义了两个数据x和y,设计add()相加函数,在函数中让x和y相加,他是实施执行的,在控制台能够看到被执行的次数,而sub则是一个计算属性,不同的是计算属性值会基于其响应式依赖被缓存

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计算属性</title>
</head>
<body>
    <div id="app">
        <h3>{{add()}}</h3>
        <h3>{{add()}}</h3>
        <hr>
        <h3>{{sub}}</h3>
        <h3>{{sub}}</h3>
        <input type="text" v-model.number="data.x">
    </div>
    <script type="module">
        import {createApp,reactive,computed} from "./vue.esm-browser.js"
        createApp({
            setup(){
                const data=reactive({
                    x:20,
                    y:50
                })

                let add=()=>{
                    console.log("add执行....")
                    return data.x+data.y
                }

                const sub=computed(()=>{
                    console.log("sub执行了....")
                    return data.y-data.x
                })
                return{
                    data,
                    add,
                    sub
                }
            }
        }).mount("#app")
    </script>
</body>
</html>
①computed() 会自动从其计算函数的返回值上推导出类型:

2.实现截图

可能有人要问,为什么sub被调用了两次,但是控制台只显示一次呢?

因为sub为计算属性,有缓存

相关推荐
开开心心就好6 小时前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法
Setsuna_F_Seiei8 小时前
前端转型 Agent 开发 05 之 Agent Hooks 与 Checkpointer(让 Agent 从全自动转变人为可掌控)
前端·agent·ai编程
百万蹄蹄向前冲10 小时前
风扇转了一晚上MVP专家团翻车事故
前端·人工智能
默_笙10 小时前
🏛 给 AI 配一间办公室:Harness Engineering 六大模块与它的实现
前端·javascript
linux_cfan11 小时前
videojs v10 源代码系列解读:14 · 谓词守卫:在运行时安全地调用能力
前端·javascript·音视频
kyriewen12 小时前
我扒了 10,221 条 JD:腾讯技术岗 75% 在要 AI
前端·人工智能·ai编程
郑州光合科技余经理12 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
+VX:Fegn089513 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
雪芽蓝域zzs13 小时前
第 7 章:双 Y 轴组合图(柱状 + 折线,看板高频场景)
vue.js·echars
IT_陈寒13 小时前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端