uniapp-【rich-text】

本文详细介绍了uni-app的rich-text组件,该组件用于展示富文本内容,但不支持节点事件。当需要处理链接和图片点击时,可以使用uni-app插件市场的parse插件。文章还提及了rich-text组件的name属性不区分大小写,img标签只支持网络图片,以及在自定义组件中使用时的注意事项。此外,展示了如何通过nodes属性设置元素节点和文本节点,以及支持的HTML标签列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • rich-text 组件内屏蔽所有节点的事件。所以如果内容中有链接、图片需要点击,则不能使用rich-text,此时可在uni-app插件市场搜索parse插件使用。app-nvue的rich-text组件支持链接图片点击
  • name 属性大小写不敏感
  • img 标签仅支持网络图片
  • 如果在自定义组件中使用 rich-text 组件,那么仅自定义组件的 css 样式对 rich-text 中的 class 生效。

nodes 属性推荐使用 Array 类型,由于组件会将 String 类型转换为 Array 类型,因而性能会有所下降。

属性名类型默认值说明
nodesArray / String[]节点列表 / HTML String

现支持两种节点,通过 type 来区分,分别是元素节点和文本节点,默认是元素节点,在富文本区域里显示的 HTML 节点 

元素节点:type = node

属性说明类型必填备注
name标签名String支持部分受信任的 HTML 节点
attrs属性Object支持部分受信任的属性,遵循 Pascal 命名法
children子节点列表Array结构和 nodes 一致

文本节点:type = text

属性说明类型必填备注
text文本String支持 entities

全局支持class和style属性,不支持id属性

 

<rich-text :nodes="nodes"></rich-text>

export default {
    data() {
        return {
            nodes: [{
                name: 'div',
                attrs: {
                    class: 'div-class',
                    style: 'line-height: 60px; color: red; text-align:center;'
                },
                children: [{
                    type: 'text',
                    text: 'Hello&nbsp;uni-app!'
                }]
            }]
        }
    }
}

 

 

<rich-text :nodes="strings"></rich-text>

export default {
    data() {
        return {
            strings: '<div style="text-align:center;"><img src="https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/d8590190-4f28-11eb-b680-7980c8a877b8.png"/></div>'
        }
    }
}
节点属性
a 
abbr 
b 
blockquote 
br 
code 
colspan,width
colgroupspan,width
dd 
del 
div 
dl 
dt 
em 
fieldset 
h1 
h2 
h3 
h4 
h5 
h6 
hr 
i 
imgalt,src,height,width
ins 
label 
legend 
li 
olstart,type
p 
q 
span 
strong 
sub 
sup 
tablewidth
tbody 
tdcolspan,height,rowspan,width
tfoot 
thcolspan,height,rowspan,width
thead 
tr 
ul 

 

 

### UniApp `rich-text` 组件使用教程 #### 一、基础介绍 `rich-text` 是用于展示富文本内容的组件,在不同平台上的表现可能会有所差异。此组件支持 HTML 片段作为输入并将其渲染成相应的视图结构。 #### 二、属性说明 - **nodes**: 接收要渲染的内容字符串或对象数组,可以是纯文本也可以包含标签。 - **space**: 设置节点间的间距,默认值为'normal';可选参数有 'ems', 表示按照 em 单位来设置间距大小[^1]。 #### 三、样式应用技巧 对于某些特定场景下遇到的样式问题,比如内联样式的失效情况,可以通过全局配置过滤器的方式给指定标签添加额外 CSS 类名来进行样式覆盖: ```javascript export function richTxtFilter(content) { if (!content) return ''; let val; // 替换 p 标签为其加上自定义类名 "rich-txt-p" val = content.replace(/<p/gi, '<p class="rich-txt-p"'); return val; } ``` 上述代码片段展示了如何通过正则表达式替换原有 `<p>` 开始标记,从而达到为目标元素附加新类的效果[^3]。 #### 四、跨平台兼容性注意事项 由于各平台对原生能力的支持程度不尽相同,因此在开发过程中需要注意测试各个目标环境下的行为一致性。例如,在百度小程序中可能出现无法正确解析HTML的情况,此时建议检查是否有特殊字符未被转义等问题存在[^4]。 #### 五、多媒体资源加载失败处理 当发现图片或其他媒体文件未能成功显示时,应确认这些外部链接是否能够正常访问以及路径是否正确无误。另外还需注意部分框架版本可能存在已知缺陷影响到此类功能正常使用,及时更新至最新稳定版往往能解决问题所在[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值