在vue中,直接渲染带有\n的语句,渲染失败,不回换行
解决方法
一、CSS解决
设置white-space: pre-wrap;
<div style="white-space: pre-wrap;">{{含有/n的语句}}</div>
white-space属性指定元素内的空白怎样处理。
值 | 描述 |
---|---|
normal | 默认。空白会被浏览器忽略。 |
pre | 空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。 |
nowrap | 文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。 |
pre-wrap | 保留空白符序列,但是正常地进行换行。 |
pre-line | 合并空白符序列,但是保留换行符。 |
inherit | 规定应该从父元素继承 white-space 属性的值。 |
二、通过v-html解决
- v-html 指令的作用:设置元素的innerHTML
- 内容中有html结构会被解析为标签
- v-text指令无论内容是什么,只会解析为文本
- 解析文本使用v-text,需要解析html结构使用v-html
// html部分 <div class="logs" v-html="runLog"></div> // js部分 this.runLog = this.runLog.replace(/\n/g, '<br />')
三、<pre>标签
pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。
<pre>{{ 含有/n的语句 }}</pre>