vue项目中字符串换行显示方式(返回的数据包含‘\r\n’字符)

 更新时间:2023年04月23日 17:15:12   作者:start_sea  
这篇文章主要介绍了vue项目中字符串换行显示方式(返回的数据包含‘\r\n’字符),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue项目中字符串换行显示

在vue项目中,请求后端接口获取到的数据是一整条字符串,如:‘1、和加速度和环境,\r\n2、技术的进步是否,\r\n3、讲述的就是不对’

(数据是随意的,各位大佬别纠结(~~))

这种格式的文本数据我们希望在界面中展示是换行的, 如下:

  • 1、和加速度和环境
  • 2、技术的进步是否
  • 3、讲述的就是不对

但是在vue项目中,数据渲染时无法识别换行符‘\r\n’

处理方法

先定义一个字符串数据

var str = '1、和加速度和环境,\r\n2、技术的进步是否,\r\n3、讲述的就是不对'

1、拿到数据先对字符串数据进行处理,使用replace()函数或split().join()方式处理数据; 

replace()函数处理方式:

str.replace(/\\r\\n/g, '<br/>')

一波解释:正则全局检索‘\r\n’字符,用‘br’标签替换(用br标签替换是有原因的,下面解释) 

split()函数处理方式:

split(/\\r\\n/g).join('<br/>')

用split()函数处理,是先检索‘\r\n’字符切割成数组,我们拿到的数据是arr格式的,arr[0]就是‘1、和加速度和环境,’,因此需要用join()重新拼接并插入‘br’标签字符。

2、将str数据渲染到组件中:

拿到数据:

var data = str.replace(/\\r\\n/g, '<br/>')

渲染到组件中:

<div v-html="data"></div>

强调!强调!强调!这里要用v-html!

踩坑记录(记得抽空瞄一眼,很重要!) 

1、关于正则判断的踩坑:

用正则判定时踩了几个坑,用replace()函数处理时,一种写法是str.replace(/\r\n/g, ‘’),这种写法在Google浏览器控制台中编译的时候是生效的,但是在vue项目中运行时无效。

因此,需要用比较严谨的正则方式,字符串中的\是特殊字符,检索是需要转义,在正则中需要转义的字段要在前面加上斜杠

所以最后需要写成**/\r\n/g**的格式,/g是正则全局判断的意思。

2、使用br标签替换的原因:

后端返回的字符串数据,换行符是**\r\n**,在前端渲染时,会发现,直接将字符串渲染时是无法识别的,有些道友会发现,\n也是可以换行的,比如在标签中直接渲染字符串。但是在vue项目中,在标签中使用 {{}} 渲染变量数据时是无法识别换行的。

同样的,用br标签替换之后使用 {{}} 渲染变量数据也是无法识别的,因此要用v-html方法替换 {{}} 方法渲染。

vue字符串换行问题及vue路由跳转传参

vue 中 用 {{}} 进行数据绑定的时候,如果想让字符串换行是不会生效,

解决办法,不用上边的方式进行数据绑定,用v-html标签代替{{}}

//table中columns的列对象中引入插槽knTags
columns: [
    {
        title:'标题',
        align:"center",
        dataIndex: 'backTag',//渲染的字段
        scopedSlots: { customRender: 'knTags' },
        ellipsis: true //字数超出显示省略号
    },
    {
    ...
    }]
//knTags插槽中自定义展现的数据
<template slot="knTags" slot-scope="text,record">
//text为表格渲染的字段backTag的数据
//record为动态传给table渲染的的json本条所有数据
<a v-if="record.remarkContent.trim()==''" v-html="text"></a>
<a v-else :title="'摘要:<br>'+record.remarkContent.trim()">{{text}}</a>
</template>

//假设text的数据
record.text=“第一行<br/>第二行”;

输出结果:
------------------------------------------------
“第一行<br/>第二行”
------------------------------------------------
第一行
第二行
------------------------------------------------

解决方法 加入 路由a 跳转到 路由b:

 data () {
    return {
      url: {
            lookCaseUrl:"/aaaa/bbbb/ccccc",//项目接口地址
         editKnUrl:"aaaa-bbbbb-cccccc"//框架页面地址
       }
     }
    }

//a页面路由跳转b传参
that.$router.push({
    name:that.url.editKnUrl,
    params:
        {idMedias : info.file.id,
          keys     : res
     }
});

//b页面的方法中接受路由传过来的参数
this.$route.params.idMedias 
this.$route.params.keys

项目开发过程中遇到的问题! 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • vue中过滤器filter的讲解

    vue中过滤器filter的讲解

    今天小编就为大家分享一篇关于vue中过滤器filter的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • vue面试常考之computed是如何实现的

    vue面试常考之computed是如何实现的

    对于每天都在用的计算属性(computed),小编猜大家肯定也想窥探其奥妙与原理对吧,所以这篇文章就来讲讲computed是如何实现的吧,感兴趣的小伙伴可以学习一下
    2023-08-08
  • 一步步讲解Vue如何启动项目

    一步步讲解Vue如何启动项目

    这篇文章主要给大家介绍了关于Vue如何启动项目的相关资料,还介绍了解决vue启动项目时间很长问题的相关方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Vue3项目中优雅实现微信授权登录的方法

    Vue3项目中优雅实现微信授权登录的方法

    用户在微信端中访问第三方网页,可以通过微信网页授权机制获取用户的基本信息,进而实现所需要的业务逻辑,这篇文章主要给大家介绍了关于Vue3项目中优雅实现微信授权登录的相关资料,需要的朋友可以参考下
    2021-09-09
  • vue在标签中如何使用(data-XXX)自定义属性并获取

    vue在标签中如何使用(data-XXX)自定义属性并获取

    这篇文章主要介绍了vue在标签中如何使用(data-XXX)自定义属性并获取,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 基于Ant-design-vue的Modal弹窗 封装 命令式与Hooks用法

    基于Ant-design-vue的Modal弹窗 封装 命令式与Hooks用法

    这篇文章主要给大家介绍了基于Ant-design-vue的Modal弹窗封装命令式与Hooks用法,文中有详细的代码示例,具有一定的参考价值,感兴趣的同学可以借鉴阅读
    2023-06-06
  • vuex mutation action同级调用方式

    vuex mutation action同级调用方式

    这篇文章主要介绍了vuex mutation action同级调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Vue v-model组件封装(类似弹窗组件)

    Vue v-model组件封装(类似弹窗组件)

    这篇文章主要介绍了Vue中的 v-model组件封装(类似弹窗组件),本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • vue cli3 调用百度翻译API翻译页面的实现示例

    vue cli3 调用百度翻译API翻译页面的实现示例

    这篇文章主要介绍了vue cli3 调用百度翻译API翻译页面的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Vue3 实现一个自定义toast 小弹窗功能

    Vue3 实现一个自定义toast 小弹窗功能

    这篇文章主要介绍了Vue3 实现一个自定义toast 小弹窗,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09

最新评论