Vue3+Vite实现工程化,插值表达式和v-text以及v-html

1、插值表达式

插值表达式最基本的数据绑定形式是文本插值,它使用的是"Mustache"语法,即 双大括号{{}}

  • 插值表达式是将数据 渲染 到元素的指定位置的手段之一
  • 插值表达式 不绝对依赖标签,其位置相对自由
  • 插值表达式中支持javascript的 运算表达式
  • 插值表达式中也支持 函数的调用
html 复制代码
<script setup>

            let msg = "hello vue!";

            let hello = function () {
              return "hello world!"
            };

            let getMsg=()=>{
              return "hello vue3 message";
            }
            let age = 19;
            let bee = "蜜 蜂";

            //购物车
            const carts = [{name: "可乐", price: 3, number: 10}, {name: "薯片", price: 6, number: 8}];

            //计算购物车总金额
            function compute() {
              let count = 0;
              for (let index in carts) {
                count += carts[index].price * carts[index].number;
              }
              return count;
            }

</script>

<template>

  <div>
              <!--1、插值表达式 -->
              {{msg}}<br>      <!--插值表达式不依赖于标签,可以直接输入变量-->
              {{msg+"2023"}}<br>   <!--插值表达式支持运算-->
              {{msg.toUpperCase()}}<br>  <!--插值表达式支持函数调用-->
              {{hello()}}<br>                <!--插值表达式支持函数-->

              <h1>{{msg}}</h1><br>
              msg的值为:{{msg}}<br>
              getMsg返回的值为:{{getMsg()}}<br>
              是否成年:{{age>18?"true":"false"}}<br>
              反转:{{bee.split(" ").reverse().join("-")}}<br>

              购物车总金额:{{carts[0].price*carts[0].number+carts[1].price*carts[1].number}}<br>
              购物车总金额:{{compute()}}<br>
  </div>

</template>

2、v-text和v-html

为了渲染双标中的文本,我们也可以选择使用v-text和v-html命令

  • v-*** 这种写法的方式使用的是 vue的命令
  • v-*** 的命令必须依赖元素,并且要写在元素的 开始标签
  • v-***指令支持 ES6中的字符串模板
  • v-text可以将数据渲染成双标签中间的文本,但是不识别html元素结构的文本
  • v-html可以将数据渲染成双标签中间的文本,识别html元素结构的文本
html 复制代码
<script setup>

              let str = "<input type='text' value='99'/>";

              let msg = "hello vue3";
              let getMsg=()=>{
                return msg;
              }
              let age = 19;
              let bee = "蜜 蜂";
              let redMsg='<font color="red">msg</font>'
              let greenMsg = '<font color="green">${msg}</font>';
</script>

<template>

  <div>
                <!--2.v-text和v-html-->
                <p v-text="str"></p><!--innerText()-->
                <p v-html="str"></p><!--innerHTML()-->

                <span v-text="msg"></span><br>
                <span v-text="redMsg"></span><br>
                <span v-text="getMsg()"></span><br>
                <span v-text="age>18?'成年':'未成年'"></span><br>
                <span v-text="bee.split(' ').reverse().join('-')"></span><br>

                <h1>=============</h1>

                <span v-html="msg"></span><br>
                <span v-html="redMsg"></span><br>
                <span v-html="greenMsg"></span><br>
                <span v-html="`<font color='green'>${msg}</font>`"></span>


  </div>

</template>
相关推荐
han_9 分钟前
一篇看懂国内外主流大模型:GPT、Claude、Gemini、DeepSeek、通义千问有什么区别?
前端·人工智能·llm
一行代码一行诗++18 分钟前
注释是什么和注释该怎么写(C语言)
java·前端·javascript
涂兵兵_青石疏影25 分钟前
beginPath-vs-save详解
前端
泽_浪里白条37 分钟前
我在 Superset 6.x 做自定义图表 + Embedded SDK 集成的实战复盘(附踩坑清单)
前端·数据可视化
幽络源小助理1 小时前
小六壬排盘工具源码 自适应双端 纯原生HTML+JS
前端·javascript·html
Championship.23.242 小时前
Open Source Pipeline Skill深度解析:自动化开源贡献全流程
前端·javascript·html
Bigger2 小时前
🧠 前端岗位的"结构性调整":现象背后的冷思考
前端·程序员·ai编程
薯老板2 小时前
vue组件之间的通信
前端·vue.js
迪菲赫尔曼2 小时前
从 0 到 1 打造工业级推理控制台:UltraConsole(Ultralytics + FastAPI + React)开源啦!
前端·yolo·react.js·计算机视觉·开源·fastapi
万邦科技Lafite2 小时前
京东开放API接口:item_get返回参数指南
java·前端·javascript·api·电商开放平台