验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

vue项目中字符串换行显示的方法有哪些

阅读:610 来源:乙速云 作者:代码code

vue项目中字符串换行显示的方法有哪些

      vue项目中字符串换行显示

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

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

      • 1、和加速度和环境

      • 2、技术的进步是否

      • 3、讲述的就是不对

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

      处理方法

      先定义一个字符串数据

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

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

      replace()函数处理方式:

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

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

      split()函数处理方式:

      split(/\r\n/g).join('
      ')

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

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

      拿到数据:

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

      渲染到组件中:

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

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

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

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

    vue项目中字符串换行显示的方法有哪些

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

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

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

    后端返回的字符串数据,换行符是**rn**,在前端渲染时,会发现,直接将字符串渲染时是无法识别的,有些道友会发现,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插槽中自定义展现的数据
    
    //text为表格渲染的字段backTag的数据
    //record为动态传给table渲染的的json本条所有数据
    
    '+record.remarkContent.trim()">{{text}}
    
    
    //假设text的数据
    record.text=“第一行
    第二行”; 输出结果: ------------------------------------------------ “第一行
    第二行” ------------------------------------------------ 第一行 第二行 ------------------------------------------------

    解决方法 加入 路由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
    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>