vue文本识别 “ \n ” 的换行问题

在 vue 项目,有时请求返回的数据 中会有含有 \n 的字符串,如果直接渲染的话无法实现换行。

一、通过 css属性 实现

设置 white-space: pre-wrap;  代码如下:

 

{{含有\n的字符串}}

扩展:

white-space属性值:

值                                描述

normal                         默认。空白会被浏览器忽略。

pre                               空白会被浏览器保留。其行为方式类似 HTML 中的

 标签。

nowrap                        文本不会换行,文本会在在同一行上继续,直到遇到
标签为止。

pre-wrap                      保留空白符序列,但是正常地进行换行。

pre-line                        合并空白符序列,但是保留换行符。

inherit                          规定应该从父元素继承 white-space 属性的值。

二、使用v-html实现

首先,将字符串里的 \n 替换为
,然后用 v-html 指令渲染字符串为 innerHTML 。 代码如下:

// JS部分

 this.text = res.data.replace(/\n/g,'
')

 // HTML部分

 

三、

标签

pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。代码如下:

 

{{含有\n的字符串}}

注意:在选择

标签时,如果文字太长的行可能会撑开固定宽度的容器或者超出容器范围。解决方法:

 pre {

 //方法一:保留空白符序列,但是正常地进行换行。

   white-space: pre-wrap;

 //方法二:添加横向滚动条

   overflow-x: auto;

}

你可能感兴趣的:(vue文本识别 “ \n ” 的换行问题)