需求: 拼接后端返回内容,并按照代码缩进格式展示,并且可以保留排版复制
分析:因为要复制,所以只能放在一个dom盒子里面,不能拆不同dom写样式
解决:style="white-space: pre-wrap"
note: 我这里实行的比较简单,大家如果是很多的代码串展示的话,可以尝试在’><’ 直接加上分隔符试试,或者有其他的办法可以给我指下路^ V ^
复制的话可以去看下我的另一篇文章js实现复制文本及其排版格式
<div
id="'code-wrap'"
class="code-wrap"
style="white-space: pre-wrap"
v-text="getCode(item, true)"
></div>
const gap= ' '// 缩进空格
getCode(data, hasGap?) {
const { a, b, c} = data
const gap: any = hasGap ? this.gap : ''
const code = `<dependency>\n${gap}<groupId>${a}</groupId>\n${gap}<artifactId>${b}</artifactId>\n${gap}<version>${c}</version>\n</dependency>`
return code
}
效果: