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...】"]);
相关推荐
特立独行的猫a1 分钟前
我用 Rust + Tauri 2 复刻了 N_m3u8DL-CLI:一个 m3u8 多线程下载器
开发语言·后端·rust·m3u8·视频下载器·m3u8dl-cli
程序员雷欧5 分钟前
LongAdder
开发语言·python
breeze jiang17 分钟前
React Todos 前端独立开发全解:用 vite-plugin-mock + axios 封装,再也不等后端接口
前端·react.js·状态模式
鱼子星_17 分钟前
【C++】反向迭代器:反向迭代器的底层认识与模拟实现
开发语言·c++·笔记·stl
名字还没想好☜19 分钟前
Java 用 MethodHandle 替代反射:调用性能实测、invokeExact 的坑与缓存
java·开发语言·缓存·反射·methodhandle
SMF191921 分钟前
【Linux】完美解决缩略图工具gm调用java.io.FileNotFoundException: gm问题
java·开发语言·python
cyadyx23 分钟前
【vue】Pinia相对Vuex
前端·javascript·vue.js
念何架构之路27 分钟前
路由注册:RouterGroup(routergroup.go)
开发语言·后端·golang
码上成长34 分钟前
小程序请求层怎么封装?
前端·小程序
Darkwanderor34 分钟前
C++的流简介和简单使用
开发语言·c++