当前位置: 首页 > news >正文

Vue:插值表达

Vue 的插值表达式是数据绑定的基础形式,它通过 {{ }} 将 JavaScript 数据动态渲染到模板中。下面通过代码示例,直观感受它的用法和限制。


基础用法

<template><div><!-- 直接显示数据 --><p>{{ message }}</p><!-- 使用表达式计算 --><p>{{ score * 10 }}</p><!-- 三元运算符 --><p>{{ isPass ? '及格' : '不及格' }}</p></div>
</template><script>
export default {data() {return {message: "Hello Vue!",score: 8,isPass: true};}
};
</script>

调用方法或计算属性

插值中可以调用组件的方法或计算属性:

<template><div><!-- 调用方法 --><p>{{ formatDate(new Date()) }}</p><!-- 使用计算属性 --><p>{{ reversedMessage }}</p></div>
</template><script>
export default {data() {return { message: "Hello" };},methods: {formatDate(date) {return date.toLocaleDateString(); // 返回格式化日期}},computed: {reversedMessage() {return this.message.split('').reverse().join(''); // 反转字符串}}
};
</script>

错误用法示例

插值中不能写语句,以下代码会报错:

<!-- 错误:使用了 if 语句 -->
<p>{{ if (isPass) { return '通过' } }}</p><!-- 错误:试图定义变量 -->
<p>{{ let a = 1 }}</p>

XSS 防护示例

默认转义 HTML 标签,防止脚本攻击:

<template><div><!-- 显示纯文本 --><p>{{ rawHtml }}</p>       <!-- 输出:<script>alert(1)</script> --><!-- 使用 v-html 渲染 HTML --><p v-html="rawHtml"></p>  <!-- 实际会执行 script 代码(需谨慎!) --></div>
</template><script>
export default {data() {return { rawHtml: "<script>alert(1)</script>" };}
};
</script>

插值与指令的对比

<!-- 插值表达式:直接替换内容 -->
<p>{{ message }}</p><!-- 属性绑定需用 v-bind -->
<div v-bind:id="dynamicId"></div><!-- 错误写法:直接在属性中用插值 -->
<div id="{{ dynamicId }}"></div>  <!-- 无法生效! -->

总结

通过这些代码示例可以看出:

  1. 插值表达式适合简单逻辑,复杂逻辑应交给计算属性或方法。
  2. 避免在模板中写 JavaScript 语句,保持模板简洁。
  3. 默认的 XSS 防护机制让渲染更安全,但需注意 v-html 的使用场景。

相关文章:

  • pytorch模型画质增强简单实现
  • 关系型数据库和非关系型数据库
  • 一次IPA被破解后的教训(附Ipa Guard等混淆工具实测)
  • rust 全栈应用框架dioxus server
  • AI大模型学习十九、利用Dify+deepseekR1 使用文件上传搭建文章理解助手
  • FastMCP v2:构建MCP服务器和客户端的Python利器
  • java 中 DTO 和 VO 的核心区别
  • 一键解锁嵌入式UI开发——LVGL的“万能配方”
  • ASP.NET Core Identity框架使用指南
  • 如何使用 React Hooks 替代类组件的生命周期方法?
  • 【AI大语言模型本质分析框架】
  • 2025年第十六届蓝桥杯软件赛省赛C/C++大学A组个人解题
  • uniapp|商品列表加入购物车实现抛物线动画效果、上下左右抛入、多端兼容(H5、APP、微信小程序)
  • c++STL-STL简介和vector的使用
  • 数据结构(五)——串、数组、广义表
  • 基于VeRL源码深度拆解字节Seed的DAPO
  • 【Python 基础语法】
  • OSPF中LSA
  • find--命令基础
  • OFCMS代码审计-freemaker注入sql注入xxexss文件上传
  • 苹果或将于2027年推出由玻璃制成的曲面iPhone
  • 新华时评:中国维护国际经贸秩序的立场坚定不移
  • 教育部答澎湃:2025世界数字教育大会将发布系列重磅成果
  • 中国海警依法驱离日非法进入我钓鱼岛领海船只
  • 首家股份行旗下AIC来了,兴银金融资产投资有限公司获批筹建
  • 谢晖不再担任中超长春亚泰队主教练:战绩不佳主动请辞