当前位置:首页 > React

ueditor如何嵌到react里

2026-01-25 13:16:24React

安装 UEditor 依赖

在项目中安装 UEditor 的官方版本或社区维护的 React 封装库(如 react-ueditor)。通过 npm 或 yarn 安装:

npm install ueditor --save
# 或使用社区封装库
npm install react-ueditor --save

引入 UEditor 资源文件

将 UEditor 的静态资源(如 ueditor.config.jsueditor.all.min.js)复制到项目的 public 目录下,或通过 CDN 引入。在 public/index.html 中添加:

ueditor如何嵌到react里

<script src="/ueditor/ueditor.config.js"></script>
<script src="/ueditor/ueditor.all.min.js"></script>

创建 React 组件封装

新建一个 React 组件(如 UEditorComponent.js),初始化 UEditor 实例并处理生命周期:

ueditor如何嵌到react里

import React, { useEffect, useRef } from 'react';

const UEditorComponent = ({ id, config, onChange }) => {
  const editorRef = useRef(null);

  useEffect(() => {
    // 动态加载 UEditor 脚本
    const script = document.createElement('script');
    script.src = '/ueditor/ueditor.all.min.js';
    script.onload = () => {
      editorRef.current = window.UE.getEditor(id, config);
      editorRef.current.addListener('contentChange', () => {
        onChange && onChange(editorRef.current.getContent());
      });
    };
    document.body.appendChild(script);

    return () => {
      if (editorRef.current) {
        editorRef.current.destroy();
      }
      document.body.removeChild(script);
    };
  }, [id, config, onChange]);

  return <div id={id} style={{ width: '100%', minHeight: '300px' }} />;
};

export default UEditorComponent;

使用组件并配置

在父组件中调用 UEditorComponent,传递配置参数和回调函数:

import React, { useState } from 'react';
import UEditorComponent from './UEditorComponent';

const App = () => {
  const [content, setContent] = useState('');

  const config = {
    autoHeightEnabled: false,
    initialFrameHeight: 500,
    serverUrl: '/api/ueditor/upload', // 后端上传接口
  };

  return (
    <div>
      <UEditorComponent id="editor" config={config} onChange={setContent} />
      <div>当前内容:{content}</div>
    </div>
  );
};

export default App;

处理上传接口

配置后端接口处理文件上传(如 Node.js 示例):

const express = require('express');
const multer = require('multer');
const app = express();
const upload = multer({ dest: 'uploads/' });

app.post('/api/ueditor/upload', upload.single('upfile'), (req, res) => {
  res.json({
    state: 'SUCCESS',
    url: `/uploads/${req.file.filename}`,
    title: req.file.originalname,
    original: req.file.originalname,
  });
});

app.listen(3001);

注意事项

  • 路径问题:确保 UEditor 资源路径正确,避免 404 错误。
  • 销毁实例:组件卸载时调用 destroy() 方法防止内存泄漏。
  • 样式隔离:UEditor 生成的 DOM 可能受全局 CSS 影响,可通过 Shadow DOM 或 iframe 解决。
  • 兼容性:社区封装库(如 react-ueditor)可能简化流程,但需注意版本兼容性。

标签: ueditorreact
分享给朋友:

相关文章

react native 如何

react native 如何

安装 React Native 开发环境 确保系统已安装 Node.js(建议版本 16 或更高)。通过以下命令安装 React Native CLI 工具: npm install -g reac…

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

如何创建react

如何创建react

创建React项目的步骤 使用Create React App工具快速搭建React项目。确保已安装Node.js(版本需≥14.0.0)和npm(版本需≥5.6)。 打开终端或命令行工具,运行以下…

react如何迭代

react如何迭代

在 React 中迭代数组或对象 React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法: 使用 map 方法迭代数组 map 是 JavaScript 数组的内置方法,常用于在 Rea…

react native如何

react native如何

React Native 基础知识 React Native 是一个由 Facebook 开发的框架,用于使用 JavaScript 和 React 构建跨平台移动应用。它允许开发者编写一次代码,同时…

react如何配置

react如何配置

配置React项目的基本步骤 安装Node.js和npm 确保系统已安装Node.js(包含npm)。可通过命令行检查版本: node -v npm -v 创建React项目 使用官方工具Creat…