微信小程序- - - - - rich-text 富文本问题

1. 小程序如何渲染HTML - - - rich-text

关于这一功能,vuev-htmlreactdangerouslySetInnerHTML,但是小程序端该如何实现该功能呢?

作为互联网大头的腾讯出品的微信小程序,肯定会对该功能有支持,那就是rich-text
官方地址: rich-text

2. rich-text的使用

<rich-text nodes="{{vHtml}}"></rich-text>
data:{
	vHtml:'<div><h1>我是标题</h1><p>我是内容</p></div>'
}

效果如图:
在这里插入图片描述

3. 遇到的问题

data:{
	vHtml: '<div><h1>我是&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;标题</h1><p>&nbsp;我是内容</p></div>'
}

效果图:
在这里插入图片描述

可发现如下问题:

  • 在中间的空格是可以正常渲染的,但是连续多个空格只会展示为1个空格
  • 以空格开头的内容,开头空格不会渲染

4. 解决方案

4.1 使用文档提供的api

在官方文档里可以看到这么一个属性:
在这里插入图片描述

根据API设置属性即可。代码如下:

<rich-text nodes="{{vHtml}}" space='nbsp'></rich-text>

4.2 自行替换字符串

思路:

  • 使用正则&nbsp;表示的空格转换为可识别的字符
  • 转换后的html字符串再用rich-text解析

例如:

data:{
	str: '<div><h1>我是&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;标题</h1><p>&nbsp;我是内容</p></div>',
	vHtml: str.replace(/&nbsp;/g, '\xa0') || '',
	vHtml2: str.replace(/ /g, '\xa0') || ''
}

效果图:
在这里插入图片描述
如此就会正常显示空格字符了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值