Vue3 开发中,字符串中的 <br\> 标签被直接当作文本显示出来了,而不是被解析为 HTML 换行标签

html 复制代码
<div class="dialog-content">
    <span>{{ previewContent }}</span>
</div>
js 复制代码
const previewContent = ref("Authorization: Bearer 【eyJhbGci...】<br\>X-Access-Token: 【eyJhbGci...】");
  • 在前端 Vue3 开发中,字符串中的 <br\> 标签被直接当作文本显示出来了,而不是被解析为 HTML 换行标签
处理策略
  1. 最直接的方式是使用 v-html 指令,但是使用 v-html 指令时要确保内容是可信任的,避免 XSS 攻击
html 复制代码
<div class="dialog-content">
    <span v-html="previewContent"></span>
</div>
  1. 更安全、更推荐的方式是,避免使用 v-html 指令,可以用 CSS 的 white-space 属性来处理换行
html 复制代码
<div class="dialog-content multiline-text">
    <span>{{ previewContent }}</span>
</div>
js 复制代码
const previewContent = ref("Authorization: Bearer 【eyJhbGci...】\nX-Access-Token: 【eyJhbGci...】");
  1. 最灵活的方式是,使用数组渲染,可以对每一行进行单独控制
html 复制代码
<div class="dialog-content">
    <div v-for="(line, index) in previewContents" :key="index">
        {{ line }}
    </div>
</div>
js 复制代码
const previewContents = ref(["Authorization: Bearer 【eyJhbGci...】", "X-Access-Token: 【eyJhbGci...】"]);
相关推荐
程序员小羊!1 天前
02CSS预备知识
前端·css3
用户059540174461 天前
用LangChain+Chroma实现RAG多轮对话记忆与自动化测试,把bug发现时间从2小时压缩到5分钟
前端·css
2401_868534781 天前
常见的 vue面试题目
前端·javascript·vue.js
星栈1 天前
Makepad UI 代码怎么读:别被语法吓住
前端·rust
程序员皮皮林1 天前
Dubbo 的 SPI 和 JDK 的 SPI 有什么区别?
java·开发语言·dubbo
胡萝卜术1 天前
从零搭建 NLP Demo:用 ES6 模块化 + DeepSeek API 构建你的第一个 AI 应用
javascript·面试
是多巴胺不是尼古丁1 天前
java‘期末复习--多态
java·开发语言
前端市界1 天前
实用指南:如何本地化部署 Sentry (Self-Hosted) 完整教程
前端
颂love1 天前
TypeScript速学
前端·javascript·typescript
IT策士1 天前
第 46 篇 k8s之CI/CD 集成:GitOps 理念与 ArgoCD
前端·容器·kubernetes