小程序实现vue的v-html指令(仿微信搜索)

小程序自己的<rich-text>组件:
组件的nodes属性就是要渲染的html格式的字符串,因为是渲染html格式,并不是小程序格式,所以该组件不识别<text></text>一类的标签,支持标签中含有class和style,但是不支持id属性,具体支持哪些标签,可以参考文档-微信文档
案例仿照了一个微信搜索的功能,用到了<rich-text>组件,具体如下:
在这里插入图片描述

      <!-- 弹性盒子布局 -->
      <view class="flex_box">
        <!-- 名字 -->
        <view class="name_box">
          <rich-text nodes="{{item.name}}"></rich-text>
        </view>
        <!-- 电话 -->
        <view class="phone_box">
          <rich-text nodes="{{item.phone}}"></rich-text>
        </view>
      </view>

在这里插入图片描述

 // 替换关键字为带标签的,实现关键字高亮显示
 arr.forEach(item => {
   item.name = item.name.replace(this.data.keyword, `<span class="high_light">${this.data.keyword}</span>`)
   item.phone = JSON.stringify(item.phone).replace(this.data.keyword, `<span class="high_light">${this.data.keyword}</span>`)
 })

在这里插入图片描述

.name_box .high_light,
.phone_box .high_light {
  color: #009BFF;
}

遍历过之后name和phone已经变成了html格式的字符串,wxml渲染的是遍历之后的数据(html格式的字符串)
在这里插入图片描述
在这里插入图片描述
搜索下面的蓝色字体就是遍历之后,被处理成html格式的数据:
<span class="high_light">啊</span>大大

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值