当前位置: 首页 > 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 的使用场景。
http://www.xdnf.cn/news/399331.html

相关文章:

  • 如何在 Bash 中使用 =~ 操作符 ?
  • 单词短语0512
  • C++色彩博弈的史诗:红黑树
  • 关于大语言模型的困惑度(PPL)指标优势与劣势
  • 菊厂0510面试手撕题目解答
  • spdlog日志格式化 标志全指南
  • Java详解LeetCode 热题 100(14):LeetCode 56. 合并区间(Merge Intervals)详解
  • 【网络安全】SQL注入
  • pdf 不是扫描件,但却无法搜索关键词【问题尝试解决未果记录】
  • 用短说社区搭建的沉浸式生活方式分享平台
  • Redis+Caffeine构建高性能二级缓存
  • Python邮件处理(使用imaplib和email库实现自动化邮件处理)
  • Kubernetes控制平面组件:Kubelet详解(一):API接口层介绍
  • 自主添加删除开机启动项
  • tinyint(3)数据类型讲解
  • stm32之BKP备份寄存器和RTC时钟
  • 基于Python的高效批量处理Splunk Session ID并写入MySQL的解决方案
  • Hadoop 的代理用户(Proxy User)​ 功能解释
  • 配置hosts
  • 推理加速新范式:火山引擎高性能分布式 KVCache (EIC)核心技术解读
  • 深入理解Embedding Models(嵌入模型):从原理到实战(下)
  • 【机器人】复现 UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025
  • SpringBoot校园失物招领信息平台
  • Shell脚本编程3(函数+正则表达式)
  • [特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
  • Modbus协议介绍
  • springboot旅游小程序-计算机毕业设计源码76696
  • Unity ML-Agents实战指南:构建多技能游戏AI训练系统
  • 在Ubuntu系统下编译OpenCV 4.8源码
  • react-diff-viewer 如何实现语法高亮