react hook 使用百度富文本编辑器ueditor
一、基础环境搭建
dom路由引入
npm install react-router-dom --save-dev //这里可以使用cnpm代替npm命令
antd引入
antd npm install antd --save
二、引入ueditor
打开官网ueditor官网
https://github.com/fex-team/ueditor#ueditor
看下图下载,并解压出来
目录结构如下:
然后在此文件打开命令窗口
//如果电脑没有安装grunt 执行以下第一个命令 npm install grunt -g //然后给ueditor安装依赖 npm install //再执行 grunt default
成功的命令窗口
此时文件目录如下图
然后把dist文件下的目录 utf8-php 复制到react项目里的public文件夹里,并改名为ueditor
然后在项目的public的index.html引入以下代码
//上面的如果识别不了中文可以改引入以下代码
封装ueditor组件
import React, {useEffect,useImperativeHandle,forwardRef} from 'react' let editor = null const UEditor = (props,ref) => { useEffect(() => { setConfig(props.initData,props.config,props.setContent) return ()=>{ editor.destroy(); // editor.removeListener(); //不要打开,否则返回有问题报错 } },[props.initData,props.config,props.setContent]) // 初始化编辑器 const setConfig = (initData,config,setContent) => { editor = window.UE &&window.UE.getEditor('editor', { // enableAutoSave: false, // autoHeightEnabled: false, autoFloatEnabled: false, initialFrameHeight: (config&&config.initialFrameHeight) || 450, initialFrameWidth: (config&&config.initialFrameWidth) || '100%', zIndex: 1, }) editor.ready(() => { if(initData){ editor.setContent(initData) //设置默认值/表单回显 } }) editor.addListener("blur",function(){ setContent(editor.getContent()) }); } useImperativeHandle(ref,()=>({ getUEContent: ()=> { return editor.getContent() //获取编辑器内容 } })) return (