vue实现html编辑
Vue 实现 HTML 编辑的方法
使用 v-html 指令
Vue 的 v-html 指令可以直接将 HTML 字符串渲染到 DOM 中。适用于动态插入 HTML 内容的场景,但需注意防范 XSS 攻击。
<template>
<div v-html="rawHtml"></div>
</template>
<script>
export default {
data() {
return {
rawHtml: '<p style="color: red;">This is HTML content</p>'
}
}
}
</script>
使用 contenteditable 属性
通过 HTML5 的 contenteditable 属性实现可编辑区域,结合 Vue 的双向绑定同步内容。
<template>
<div
contenteditable="true"
@input="updateContent"
v-text="editableContent"
></div>
</template>
<script>
export default {
data() {
return {
editableContent: 'Editable HTML content'
}
},
methods: {
updateContent(e) {
this.editableContent = e.target.innerText;
}
}
}
</script>
集成富文本编辑器
集成第三方富文本编辑器(如 TinyMCE、Quill 或 CKEditor)提供完整的 HTML 编辑功能。
以 Quill 为例:
-
安装依赖:

npm install quill @vueup/vue-quill -
在组件中使用:
<template> <QuillEditor v-model:content="htmlContent" contentType="html" /> </template>
export default { components: { QuillEditor }, data() { return { htmlContent: '
Initial content

使用 vue-html5-editor
专用 Vue HTML 编辑器库,提供工具栏和实时预览。
-
安装:
npm install vue-html5-editor -
配置使用:
import VueHtml5Editor from 'vue-html5-editor'; Vue.use(VueHtml5Editor, { modules: ['text', 'color', 'font', 'align', 'list', 'link', 'image'] });
<template>
<vue-html5-editor v-model="content"></vue-html5-editor>
</template>
注意事项
- XSS 防护:使用
v-html时,需对动态内容进行 sanitize(如 DOMPurify)。 - 双向绑定:
contenteditable需要手动处理数据同步。 - 编辑器定制:第三方库通常支持插件扩展和主题定制。






