当前位置:首页 > uni-app

uniapp富文本组件

2026-02-06 18:03:46uni-app

uniapp富文本组件使用指南

uniapp提供了多种方式实现富文本渲染,以下是常用的方法和组件:

uni-app内置rich-text组件

uniapp内置的rich-text组件可以解析HTML字符串并渲染为富文本:

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

<script>
export default {
  data() {
    return {
      htmlString: '<div style="color: red;">红色文本</div><p>段落文本</p>'
    }
  }
}
</script>

uParse插件方案

对于更复杂的富文本需求,可以使用社区插件uParse:

  1. 安装uParse插件

    npm install @/components/gaoyia-parse
  2. 在页面中使用

    
    <template>
    <gaoyia-parse :content="htmlContent"></gaoyia-parse>
    </template>
import parse from '@/components/gaoyia-parse/parse.vue' export default { components: { 'gaoyia-parse': parse }, data() { return { htmlContent: '

标题

' } } } ```

第三方富文本编辑器集成

对于需要编辑功能的场景,可集成第三方编辑器:

  1. 微信小程序可使用editor组件

    <editor id="editor" @input="onInput"></editor>
  2. H5端可使用wangEditor或Quill

    // 在mounted生命周期中初始化
    mounted() {
    if(process.env.VUE_APP_PLATFORM === 'h5') {
     const editor = new WangEditor('#editor')
     editor.create()
    }
    }

富文本内容安全处理

处理富文本时需注意XSS防护:

// 使用xss过滤库
import xss from 'xss'
const safeHtml = xss(unsafeHtmlString)

图片自适应处理

富文本中的图片需要特殊处理以适应不同屏幕:

/* 全局样式 */
rich-text img {
  max-width: 100%;
  height: auto;
}

平台差异说明

  • 微信小程序:rich-text支持大部分HTML标签
  • H5:完全支持HTML
  • App:部分CSS样式需要额外处理

通过以上方法可以实现uniapp中的富文本展示需求,根据具体场景选择合适的方案。

标签: 组件文本
分享给朋友:

相关文章

vue实现水印组件

vue实现水印组件

Vue 水印组件实现 基础水印组件实现 创建一个基础水印组件,通过 props 接收文本、颜色、大小等参数: <template> <div class="watermark-…

Vue组件实现方法

Vue组件实现方法

Vue组件的基本实现 Vue组件是Vue.js的核心概念之一,允许将UI拆分为独立可复用的代码片段。组件的实现方式有多种,以下是常见的几种方法。 单文件组件(SFC) 单文件组件以.vue为后缀,将…

vue实现父子组件

vue实现父子组件

Vue 父子组件通信实现方式 1. 父组件向子组件传递数据(Props) 父组件通过 props 向子组件传递数据,子组件通过 props 接收数据。 父组件模板: <template>…

vue实现文本折叠

vue实现文本折叠

实现文本折叠的基本思路 文本折叠功能通常涉及控制文本的显示高度,超出指定行数后显示“展开/收起”按钮。Vue中可以通过动态绑定CSS样式和条件渲染实现这一效果。 使用CSS控制文本行数 通过CSS的…

vue 动态组件实现

vue 动态组件实现

vue 动态组件实现 Vue 的动态组件功能允许根据条件或用户交互动态切换不同的组件,主要通过 <component> 标签和 is 属性实现。 基本用法 通过 is 属性绑定组件名或组…

vue组件实现tab

vue组件实现tab

Vue 组件实现 Tab 切换 基础实现方案 模板结构 使用 v-for 渲染标签页标题,通过 v-show 或 v-if 控制内容显示: <template> <div cl…