当前位置:首页 > uni-app

uniapp富文本组件

2026-03-26 13:31:15uni-app

uniapp富文本组件实现方法

在uniapp中实现富文本显示,可以通过内置组件或第三方插件实现。以下是几种常用方法:

使用uni-app内置的rich-text组件

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

<script>
export default {
  data() {
    return {
      htmlContent: '<div style="color: red;">这是红色文字</div><p>普通段落</p>'
    }
  }
}
</script>

rich-text组件支持简单的HTML标签,但不支持所有HTML特性,如iframe、form等。

使用第三方插件parser 安装mp-html插件:

npm install mp-html

使用示例:

<template>
  <mp-html :content="htmlContent" />
</template>

<script>
import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'

export default {
  components: {
    mpHtml
  },
  data() {
    return {
      htmlContent: '<div>完整HTML支持</div>'
    }
  }
}
</script>

使用uParse组件(兼容旧版本) 下载uParse组件后引入:

uniapp富文本组件

<template>
  <u-parse :content="htmlContent" />
</template>

<script>
import uParse from '@/components/u-parse/u-parse.vue'

export default {
  components: {
    uParse
  },
  data() {
    return {
      htmlContent: '<div>支持更多HTML特性</div>'
    }
  }
}
</script>

富文本编辑器实现方案

使用quill编辑器 安装依赖:

npm install quill @vueup/vue-quill

封装组件:

<template>
  <div class="editor-container">
    <QuillEditor 
      v-model:content="content" 
      contentType="html"
      theme="snow" />
  </div>
</template>

<script>
import { QuillEditor } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css'

export default {
  components: {
    QuillEditor
  },
  data() {
    return {
      content: ''
    }
  }
}
</script>

使用tinymce编辑器 下载tinymce文件后配置:

uniapp富文本组件

<template>
  <editor 
    api-key="your-api-key"
    :init="editorInit"
    v-model="content" />
</template>

<script>
import Editor from '@tinymce/tinymce-vue'

export default {
  components: {
    Editor
  },
  data() {
    return {
      content: '',
      editorInit: {
        height: 500,
        plugins: 'advlist autolink lists link image charmap print preview anchor',
        toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat'
      }
    }
  }
}
</script>

注意事项

不同平台对富文本的支持程度不同,H5端支持最完整,小程序和App端有较多限制

富文本内容需要做XSS过滤,防止安全漏洞

大量富文本内容可能影响页面性能,建议分页或懒加载

图片可能需要特殊处理,如使用base64或CDN地址

通过以上方法可以在uniapp中实现富文本的显示和编辑功能,根据项目需求选择合适的方案。

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

相关文章

vue 组件实现

vue 组件实现

Vue 组件实现方法 单文件组件 (SFC) 使用 .vue 文件格式,包含模板、脚本和样式三部分: <template> <div class="example">{{…

uniapp组件

uniapp组件

uniapp组件基础概念 uniapp的组件系统基于Vue.js,支持跨平台开发(H5、小程序、App等)。组件分为内置基础组件(如<view>、<button>)和自定义组件…

vue实现组件切换

vue实现组件切换

Vue 组件切换的实现方法 在 Vue 中实现组件切换有多种方式,以下是几种常见的方法: 动态组件 使用 Vue 内置的 <component> 元素和 is 属性可以动态切换组件:…

vue实现高阶组件

vue实现高阶组件

Vue 高阶组件实现方法 高阶组件(HOC)是一种复用组件逻辑的模式,通过函数包裹组件并返回新组件实现。Vue 中可通过以下方式实现: 使用 render 函数 通过函数接收组件选项并返回新组件选项…

vue实现组件刷新

vue实现组件刷新

强制重新渲染组件 使用 this.$forceUpdate() 方法可以强制 Vue 实例重新渲染,但不会更新子组件。适用于依赖非响应式数据的情况。 methods: { refreshComp…

vue基础组件实现

vue基础组件实现

Vue 基础组件实现 组件定义 使用 Vue.component 全局注册或局部注册组件。全局注册适合通用组件,局部注册适合特定页面使用的组件。 // 全局注册 Vue.component('my-…