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

Vue:显示数据

Vue 提供了两种直接操作文本内容的方式:v-textv-html。它们都能将数据渲染到页面上,但处理方式有本质区别。通过代码示例理解它们的特性和使用场景。


v-text:纯文本输出

与插值表达式 {{ }} 完全等价,将数据作为纯文本输出。适合常规内容展示。

<template><div><!-- 等价于 {{ message }} --><p v-text="message"></p><!-- 会忽略 HTML 标签 --><p v-text="rawHtml"></p>  <!-- 页面显示 <b>Hello</b> --></div>
</template><script>
export default {data() {return {message: "普通文本",rawHtml: "<b>Hello</b>"};}
};
</script>

v-html:原始 HTML 渲染

解析数据中的 HTML 标签并渲染为真实 DOM。适合需要动态生成 HTML 的场景,但必须谨慎使用。

<template><div><!-- 渲染粗体文字 --><p v-html="rawHtml"></p>  <!-- 显示 Hello(加粗) --><!-- 动态生成内容 --><div v-html="dynamicContent"></div></div>
</template><script>
export default {data() {return {rawHtml: "<b>Hello</b>",dynamicContent: "<span style='color: red;'>警告</span>"};}
};
</script>

安全风险示例

当使用 v-html 渲染不可信内容时,会导致 XSS 攻击:

<template><div><!-- 假设用户输入恶意内容 --><div v-html="userInput"></div></div>
</template><script>
export default {data() {return {// 模拟用户输入的恶意脚本userInput: "<script>alert('你的信息被盗了!')</script>"};}
};
</script>

此时页面会执行脚本弹窗。实际开发中,必须对 v-html 的内容进行过滤或消毒。


两者对比

特性v-text / {{ }}v-html
输出类型纯文本原始 HTML
安全性自动转义 HTML 标签直接执行 HTML/JS
性能更高较低(需解析 DOM)
适用场景普通文本、数值富文本、可信 HTML 片段

相关文章:

  • MySQL基础之开窗函数
  • 二叉树前序与后序遍历迭代法详解:栈操作与顺序反转的巧妙结合
  • 执行apt update后报错 Unable to lock directory /var/lib/apt/lists/ 问题解决
  • Myshell与清华联合开源TTS模型OpenVoiceV2,多语言支持,风格控制进一步增强~
  • leetcode2934. 最大化数组末位元素的最少操作次数-medium
  • 【工具类】ssh,remote-ssh插件和sftp插件
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的智能安检机技术方案‌
  • electron结合vue,直接访问静态文件如何跳转访问路径
  • Apache Pulsar 消息、流、存储的融合
  • Spyglass:跨时钟域同步(同步单元)
  • 编程日志5.6
  • 一文掌握六个空转数据库
  • MySQL——九、锁
  • 十个免费试用的云数据库
  • 在 Windows 中配置使用 WSL 来运行 Linux 环境,主要有以下步骤:
  • 【测试开发知识储备】之Jacoco(Java Code Coverage)
  • LeetCode100.7 接雨水
  • 代码随想录算法训练营第60期第三十六天打卡
  • 【​​HTTPS基础概念与原理​】对称加密与非对称加密在HTTPS中的协作
  • 掌握Docker:从运行到挂载的全面指南
  • 著名植物学家、园艺学家,国际植物园协会原主席贺善安逝世
  • 国台办:实现祖国完全统一是大势所趋、大义所在、民心所向
  • 美政府以拨款为要挟胁迫各州服从移民政策,20个州联合起诉
  • 检疫期缩减至30天!香港优化内地进口猫狗检疫安排
  • 普京提议恢复直接谈判,泽连斯基:望俄明日停火,乌愿谈判
  • 侧记|青年为何来沪创新创业?从这一天寻找答案