Skip to content

Parse 富文本解析器

iPhone

该组件主要用于富文本解析场景,例如文章内容展示、商品详情呈现,或需要处理内嵌原生 HTML 标签的各种字符串。

  • 相同点:

两者都能够解析 HTML 字符串。

  • 不同点:

对于结构简单、内容轻量的 HTML 字符串,rich-text 组件的性能更优。而对于结构复杂、样式或标签较为繁复的字符串,parse 组件则表现更佳。它不仅支持更丰富的自定义属性,还能实现更多扩展效果。

平台差异说明

APPH5微信小程序支付宝小程序QQ小程序···
适配中

代码示例

部分功能示例,具体可参考示例程序以及文档API。

基础用法

通过 content 属性绑定需要解析的内容即可。

html
<template>
	<view class="page-content">
		<fu-parse :content="content"></fu-parse>
	</view>
</template>

<script setup>
    const content = `<p>从此不再平凡</p>`
</script>

<style lang="scss" scoped>
    .page-content {
        padding: 24rpx;
    }
</style>

设置长按复制

通过 selectable 属性设置为 true 实现长按复制的效果

html
<fu-parse :content="content" :selectable="true"></fu-parse>

设置样式

两种方法都可设置富文本的样式:

  • 通过 tagStyle 属性可以精细化的对单独的标签设置样式,注意此方法设置的样式为字符串的形式,而非对象形式
html
<template>
	<view class="page-content">
		<fu-parse :content="content" :tagStyle="tagStyle"></fu-parse>
	</view>
</template>

<script setup>
    const content = `<p>从此不再平凡</p>`;
    const tagStyle = {
        // 字符串形式
        p: 'color: blue; font-size: 30rpx;',
        span: 'font-size: 28rpx'
    }
</script>

<style lang="scss" scoped>
    .page-content {
        padding: 24rpx;
    }
</style>
  • 通过父元素标签,统一设置全文的行高、字体大小、颜色等,注意这种方法无法对单独的标签设置样式
html
<template>
	<view class="page-content">
		<fu-parse :content="content" :tagStyle="tagStyle"></fu-parse>
	</view>
</template>

<style lang="scss" scoped>
    .page-content {
        padding: 24rpx;
        color: blue; 
        font-size: 30rpx;
        line-height: 2;
    }
</style>

设置懒加载和占位图

  • 通过 lazyLoad 属性为 true 开启图片懒加载功能
  • 通过 loadingImg 属性可以设置图片加载完成前展示的占位图,为网络路径或base64图片
html
<fu-parse :content="content" :lazyLoad="true" :loadingImg="/xxx/xxx.png"></fu-parse>

链接跳转 / 锚点

  • H5、App(含NVUE) 外链可以直接打开,小程序端将自动复制链接
  • 小程序端 a 标签设置 appId 后可以跳转到其他小程序
html
<a href="#">跳转到顶部</a>
<a href="#list">跳转到列表</a>
<a href="https://www.fusions.top">外部链接</a>
<a href="/pages/demo/demo">内部链接</a>

API

SignBoard Props

属性名说明类型默认值可选值
containerStyle容器的样式String--
content用于渲染的 html 字符串String--
copyLink是否允许外部链接被点击时自动复制Booleantruefalse
domain主域名,用于拼接链接String--
errorImg图片出错时的占位图链接String--
lazyLoad是否开启图片懒加载Booleanfalsetrue
loadingImg图片加载过程中的占位图链接String--
pauseVideo是否在播放一个视频时自动暂停其他视频Booleantruefalse
previewImg是否允许图片被点击时自动预览Booleantruefalse
scrollTable是否给每个表格添加一个滚动层使其能单独横向滚动Booleanfalsetrue
selectable是否开启长按复制Boolean |Stringfalsetrue
setTitle是否将 title 标签的内容设置到页面标题Booleantruefalse
showImgMenu是否允许图片被长按时显示菜单Booleantruefalse
tagStyle标签的默认样式Object--
useAnchor是否使用锚点链接Booleanfalsetrue

SignBoard Events

事件名说明回调参数
loaddom 树加载完成时触发() => void
ready渲染完成时触发() => void
imgtap图片被点击时触发() => void
linktap链接被点击时触发() => void
play音视频播放时触发() => void
error媒体加载出错时触发() => void