富文本编辑器quill.js开发(一):自定义工具栏
时间:2023-03-28 19:41:25
HTML
前言在前端开发中,富文本是一种常见的业务场景,本文是富文本框架quill.js开发介绍定义工具栏Quill。js是一个具有跨平台和跨浏览器支持的富文本编辑器。凭借其可扩展的架构和富有表现力的API,它可以完全定制以满足个性化需求。由于其模块化架构和富有表现力的API,您可以从Quill核心开始,然后根据需要自定义其模块或向此富文本编辑器添加您自己的扩展。它提供了两个用于更改编辑器外观的主题,可以使用插件或覆盖其CSS样式表中的规则进一步自定义。Quill还支持任何自定义内容和格式,因此您可以添加嵌入式幻灯片、3D模型等。此富文本编辑器的特点:由于其API驱动设计,无需像其他文本编辑器那样解析HTML或不同的DOM树;具有跨平台和浏览器支持的快速和轻量级;API是完全可定制的;内容可以表示为JSON,这样更容易处理和转换成其他格式;提供了两个主题来快速轻松地更改编辑器的外观。自定义工具栏的开发本编辑器使用了react-quill组件库,在quill.js外层包裹了一层react组件,使得开发者在react框架中使用更加友好相关链接:https://github.com/zenoamaro/…使用:从'react'导入React,{useState};从'react-quill'导入ReactQuill;导入“react-quill/dist/quill.snow.css”;函数App(){const[value,setValue]=useState('');return;}customtoolbarpasscustomtoolbarvaluecustombuttonintoolbar,可以使用iconfontsvg或者class,这里为了方便,我们直接使用textconstCustomButton=()=>find;functionApp(){const[value,setValue]=useState('');functioninsertStar(){//点击自定义图标后的回调}//自定义工具栏,useCallback重新渲染会导致显示问题constCustomToolbar=useCallback(()=>(e.persist()}>
),[]);//直接声明会导致显示问题constmodules=useMemo(()=>({toolbar:{container:'#toolbar',handlers:{insertStar:insertStar,},},}),[]);return(
)}通过这个方案,你可以创建自己的toolbarup但是也有一个缺点:quill.js的原始工具栏功能需要自己写或者从官方的例子中复制过来。现在您可以自定义工具栏并开始我们的开发之旅。本例是一个搜索替换功能的Toolbar开发,在线查看:https://d1nrnh.csb.app/首先在自定义工具栏中按照scheme添加按钮,因为上面已经有例子了,这里忽略主要结构自定义按钮的代码现在点击回调后,显示如下样式:classFindModalextendsReact.Component{render(){return
x{this.renderSearch()}{this.renderSearch()}