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 (