vue实现富文本编辑器(vue3使用vueup/vue-quill富文本、并限制输入字数)
导读:vue3中使用富文本实在是踩了太多坑了,大概记录一下笨方法处理,有好的方法多交流...
vue3中使用富文本实在是踩了太多坑了 ,大概记录一下笨方法处理 ,有好的方法多交流
目录
一 、效果展示
二 、npm
三 、main.js引入
四 、页面使用
五 、总结问题
文档地址:Events | VueQuill
一 、效果展示
二 、npm
npm install @vueup/vue-quill@alpha --save三 、main.js引入
import { QuillEditor } from @vueup/vue-quill import @vueup/vue-quill/dist/vue-quill.snow.css; app.component(QuillEditor,QuillEditor)四 、页面使用
<quill-editor v-model:content="htmlValue" ref="myQuillEditor" contentType="html" :options="editorOption" @update:content="onEditorChange($event)"> </quill-editor> <div class="editor_length">{{ TiLength }}/500</div> const htmlValue=ref("") const TiLength =ref(0) const myQuillEditor=ref(null) const editorOption=reactive({ theme: "snow", // 主题 // debug: info, placeholder: "请输入其他说明", modules: { toolbar: { container: [ ["bold", "italic", "underline", "strike"], ["blockquote", "code-block"], [{ header: 1 }, { header: 2 }], [{ list: "ordered" }, { list: "bullet" }], [{ script: "sub" }, { script: "super" }], [{ indent: "-1" }, { indent: "+1" }], [{ direction: "rtl" }], [{ size: ["small", false, "large", "huge"] }], [{ header: [1, 2, 3, 4, 5, 6, false] }], [{ color: [] }, { background: [] }], // [{ font: [] }], [{ align: [] }] // ["clean", "link", "image"] // [addBtn] ] // 自定义工具栏选项 } } }) const onEditorChange=(e)=>{ // console.log(myQuillEditor.value.getText().length); // console.log(TiLength.value); TiLength.value =myQuillEditor.value.getText().length-1 if(TiLength.value>500){ myQuillEditor.value.setText(myQuillEditor.value.getText().slice(0,500)) return } } return{ htmlValue,editorOption,onEditorChange,TiLength,myQuillEditor }五、总结问题(简单记录一下笨方法处理的)
1 、双向绑定:v-model:content(一定加content)
2 、change事件:@update:content
3、填写下一个富文本上一个未清空时: myQuillEditor.value.setHTML()强制清空一下
4 、编辑进入的时候:强制设置一下内容;并且延迟设置一下字数
nextTick(()=>{TiLength.value =myQuillEditor.value.getText().length-1 })
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!