You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3组合式API下Quill编辑器Delta对象转HTML显示的问题

解决Vue3中Quill编辑器内容无法以HTML展示的问题

问题出在你用的<quill-editor>组件默认通过v-model:content绑定的是Delta格式的对象,不是直接的HTML字符串——所以直接把这个对象传给v-html会被转成[object Object],插值显示的自然就是Delta的结构。

给你两种实用的解决办法:

方法一:直接绑定HTML格式内容

给<quill-editor>添加content-type="html"属性,让组件直接把编辑内容以HTML字符串的形式绑定到newComment上,不用再做转换:

<quill-editor theme="snow" v-model:content="newComment" content-type="html"></quill-editor>

你的newComment还是用const newComment = ref('')声明,之后直接用<div v-html="newComment"></div>就能正常渲染带格式的评论了。

方法二:Delta转HTML(保留Delta数据)

如果需要保留Delta对象(比如要存到数据库方便后续编辑评论),可以在展示时把Delta转换成HTML:

<script setup>
import { ref } from 'vue'
import Quill from 'quill'

const newComment = ref({ ops: [] }) // 这里绑定的是Delta对象

// 把Delta转换成HTML的工具方法
const deltaToHtml = (delta) => {
  const tempQuill = new Quill(document.createElement('div'))
  tempQuill.setContents(delta)
  return tempQuill.root.innerHTML
}
</script>

<template>
  <quill-editor theme="snow" v-model:content="newComment"></quill-editor>
  <!-- 展示时调用转换方法 -->
  <div v-html="deltaToHtml(newComment)"></div>
</template>

注意事项

  • 方法一更简单,适合只需要展示HTML的场景;方法二适合需要保留Delta数据用于后续编辑的场景。
  • 使用v-html时要注意防范XSS攻击,建议对用户输入的内容做安全过滤。

内容的提问来源于stack exchange,提问作者Hossein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 02:25:00