vue2封装quill富文本
时间: 2023-08-27 22:06:55 浏览: 139
Vue2 封装 Quill 富文本编辑器可以让我们在 Vue2 项目中快速集成 Quill 富文本编辑器,并且方便地使用它的各种功能。下面是一个简单的 Vue2 封装 Quill 富文本编辑器的示例:
1. 安装 Quill
```bash
npm install quill
```
2. 封装 Quill 组件
```vue
<template>
<div ref="editor"></div>
</template>
<script>
import Quill from 'quill'
export default {
name: 'QuillEditor',
props: {
value: {
type: String,
default: '',
},
options: {
type: Object,
default: () => ({}),
},
},
data() {
return {
quill: null,
}
},
mounted() {
this.initQuill()
},
beforeDestroy() {
this.quill.off('text-change')
this.quill = null
},
methods: {
initQuill() {
const { editor } = this.$refs
const defaultOptions = {
modules: {
toolbar: [
['bold', 'italic', 'underline', 'strike'],
[{ 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'],
],
},
theme: 'snow',
}
const options = { ...defaultOptions, ...this.options }
this.quill = new Quill(editor, options)
this.quill.on('text-change', () => {
this.$emit('input', this.quill.root.innerHTML)
})
this.quill.root.innerHTML = this.value
},
},
}
</script>
```
3. 在父组件中使用
```vue
<template>
<div>
<quill-editor v-model="content" :options="quillOptions" />
</div>
</template>
<script>
import QuillEditor from './components/QuillEditor.vue'
export default {
name: 'App',
components: {
QuillEditor,
},
data() {
return {
content: '',
quillOptions: {
placeholder: '请输入内容',
},
}
},
}
</script>
```
这样,我们就可以在 Vue2 项目中使用 Quill 富文本编辑器了。
阅读全文