I am using vue-quill on my nuxt 3 project. I wrapped it inside a component and all is working fine but after a post request, editor still displays the content.
AppEditor
<script setup>
import { QuillEditor } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css'
const props = defineProps({
  modelValue: {
    type: String,
    default: '',
  },
  taskId: {
    type: Number,
    default: null,
  },
  initialContent: {
    type: String,
    default: '',
  },
  placeholder: {
    type: String,
    default: '',
  },
  taskmembers: {
    type: Array,
    required: true,
  },
})
const emit = defineEmits(['update:modelValue', 'on-editor-ready'])
const editor = ref()
const toolbar = [
  [{ header: [1, 2, 3, 4, 5, 6, false] }],
  ['bold', 'italic', 'underline', 'strike'],
  [{ list: 'ordered' }, { list: 'bullet' }],
  ['link', 'image'],
  ['clean'],
]
const onUpdate = () => {
  const content = editor.value.getHTML()
  emit('update:modelValue', content)
}
const onEditorReady = (event) => {
  emit('on-editor-ready', event)
}
</script>
<template>
  <div>
    <QuillEditor
      ref="editor"
      theme="snow"
      :toolbar="toolbar"
      content-type="html"
      :content="props.modelValue"
      placeholder="Say something..."
      @ready="onEditorReady"
      @update:content="onUpdate"
    />
  </div>
</template>
and on my page I use it like below
TaskComment
<script setup>
import AppEditor from '@/components/AppEditor.vue'
const postComment = async () => {
  const task = props.taskId
  const url = `/tasks/${task}/comments`
  loading.value = true
  try {
    await useBaseFetch(url, {
      method: 'POST',
      body: JSON.stringify({
        comment: message.value,
      }),
    })
    loading.value = false
    message.value = ''
    editor.value.setContents([]) //trying to clear the content
    currentPage.value = 1
    getComments()
  } catch (error) {
    loading.value = false
    if (error.response && error.response.status === 422) {
      console.log('error', error)
    } else {
      errorMsg.value = 'An error occured.'
    }
  }
}
</script>
<template>
  <Form @submit="onSubmit">
     <AppEditor ref="editor" v-model="message" :taskmembers="members" :task-id="props.taskId" />
       <span v-if="errorMessage && meta.touched" class="text-red-500 text-sm normal-case">{{ errorMessage }}</span>
          <div class="flex gap-2 mt-4">
            <ElementsAppButton size="small" type="submit" :loading="loading">
              Save
            </ElementsAppButton>
          </div>
  </Form>
</template>
				
                        
vue-quill doesn't seem to like the empty string in
message.value = ''.Instead, you can set it to an empty paragraph
<p></p>or<p><br></p>, which is what quill uses as empty value:Here it is in a playground