欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue3整合WangEditor富文本編輯器的實(shí)踐指南

 更新時(shí)間:2025年03月17日 14:49:05   作者:茶顏悅色  
這篇文章主要為大家詳細(xì)介紹了如何在?Vue?3?項(xiàng)目中集成?WangEditor?富文本編輯器,實(shí)現(xiàn)圖文混排、自定義擴(kuò)展等高階功能,感興趣的小伙伴可以了解下

一、為什么選擇 WangEditor

作為國(guó)內(nèi)流行的開(kāi)源富文本編輯器,WangEditor 具有以下優(yōu)勢(shì):

  • 輕量高效:壓縮后僅 1.5MB,遠(yuǎn)小于其他同類產(chǎn)品
  • 開(kāi)箱即用:提供 Vue/React 官方封裝組件
  • 擴(kuò)展性強(qiáng):支持自定義菜單、異步圖片上傳等
  • 安全可靠:內(nèi)置 XSS 過(guò)濾機(jī)制

二、快速集成到 Vue 項(xiàng)目

1. 安裝依賴

npm install @wangeditor/editor @wangeditor/editor-for-vue

2. 基礎(chǔ)組件封裝

<template>
  <div class="editor-wrapper">
    <!-- 工具欄 -->
    <Toolbar 
      :editor="editorRef" 
      :defaultConfig="toolbarConfig"
    />
    
    <!-- 編輯器 -->
    <Editor
      v-model="valueHtml"
      :defaultConfig="editorConfig"
      @onCreated="handleCreated"
    />
  </div>
</template>

<script setup>
import { Editor, Toolbar } from '@wangeditor/editor-for-vue'

// 編輯器實(shí)例(必須使用 shallowRef)
const editorRef = shallowRef()

// 內(nèi)容數(shù)據(jù)綁定
const valueHtml = ref('<p>初始內(nèi)容</p>')
</script>

三、核心功能實(shí)現(xiàn)

1. 圖片上傳集成

editorConfig.MENU_CONF['uploadImage'] = {
  allowedFileTypes: ['image/*'],
  customUpload: async (file, insertFn) => {
    try {
      const ossUrl = await uploadToOSS(file) // 對(duì)接云存儲(chǔ)
      insertFn(ossUrl, '圖片描述') // 插入編輯器
    } catch (error) {
      console.error('上傳失敗:', error)
    }
  }
}

注:推薦結(jié)合七牛云/阿里云 OSS 實(shí)現(xiàn)文件存儲(chǔ)

2. 數(shù)據(jù)雙向綁定

// 父組件傳值
watch(() => props.modelValue, (newVal) => {
  if (valueHtml.value !== newVal) {
    valueHtml.value = newVal
  }
})

// 子組件更新
watch(valueHtml, (newVal) => {
  emit('update:modelValue', newVal)
})

3. 工具欄定制

// 隱藏不常用功能
const toolbarConfig = {
  excludeKeys: [
    'fullScreen', 
    'codeBlock', 
    'code'
  ]
}

四、高級(jí)實(shí)踐技巧

1. 動(dòng)態(tài)獲取工具欄配置

onMounted(() => {
  setTimeout(() => {
    const editor = editorRef.value
    const toolbar = DomEditor.getToolbar(editor)
    console.log(toolbar.getConfig().toolbarKeys)
  }, 1500)
})

2. 內(nèi)存泄漏防護(hù)

onBeforeUnmount(() => {
  const editor = editorRef.value
  editor?.destroy() // 必須銷毀實(shí)例
})

3. 內(nèi)容變化監(jiān)聽(tīng)

const handleCreated = (editor) => {
  editorRef.value = editor
  
  // 監(jiān)聽(tīng)編輯器變化
  editor.on('change', () => {
    console.log('內(nèi)容變化:', editor.getHtml())
  })
}

五、最佳實(shí)踐建議

樣式隔離:通過(guò)外層容器限制編輯器寬度

.editor-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  border: 1px solid #eee;
}

性能優(yōu)化:

  • 使用 shallowRef 存儲(chǔ)編輯器實(shí)例
  • 避免頻繁操作 DOM

安全策略:

啟用 XSS 過(guò)濾

editorConfig = {
  MENU_CONF: {
    uploadImage: {
      customAlert: (s) => { 
        alert(s) 
      }
    }
  }
}

使用組件:

<RichTextEditor v-model="content" />

六、總結(jié)

通過(guò)本文的實(shí)踐,我們已經(jīng)實(shí)現(xiàn)了:

? 編輯器的完整集成

? 云端圖片上傳

? 數(shù)據(jù)雙向綁定

? 工具欄定制

? 內(nèi)存安全防護(hù)

預(yù)覽功能Vue3實(shí)現(xiàn)HTML內(nèi)容預(yù)覽功能

官方資源

到此這篇關(guān)于Vue3整合WangEditor富文本編輯器的實(shí)踐指南的文章就介紹到這了,更多相關(guān)Vue3整合WangEditor富文本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VUE3引入html文件并傳值方法舉例

    VUE3引入html文件并傳值方法舉例

    這篇文章主要給大家介紹了關(guān)于VUE3引入html文件并傳值的相關(guān)資料,這是最近在項(xiàng)目中遇到了的一個(gè)需求,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Vue使用mockjs問(wèn)題(返回?cái)?shù)據(jù)、get、post 請(qǐng)求)

    Vue使用mockjs問(wèn)題(返回?cái)?shù)據(jù)、get、post 請(qǐng)求)

    這篇文章主要介紹了Vue使用mockjs問(wèn)題(返回?cái)?shù)據(jù)、get、post 請(qǐng)求),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2023-05-05
  • 詳解如何在Vue中進(jìn)行表單自定義驗(yàn)證

    詳解如何在Vue中進(jìn)行表單自定義驗(yàn)證

    在Vue應(yīng)用中,表單驗(yàn)證是非常重要的一部分,Vue提供了一些內(nèi)置的驗(yàn)證規(guī)則,比如required、min、max等,但是有時(shí)候我們需要對(duì)表單進(jìn)行自定義驗(yàn)證,以滿足特定的業(yè)務(wù)需求,本文將介紹如何在Vue中進(jìn)行表單自定義驗(yàn)證,感興趣的朋友可以參考下
    2023-12-12
  • 基于vue-cli3+typescript的tsx開(kāi)發(fā)模板搭建過(guò)程分享

    基于vue-cli3+typescript的tsx開(kāi)發(fā)模板搭建過(guò)程分享

    這篇文章主要介紹了搭建基于vue-cli3+typescript的tsx開(kāi)發(fā)模板,本文通過(guò)實(shí)例代碼截圖的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Vue3項(xiàng)目中引入html頁(yè)面的方法舉例

    Vue3項(xiàng)目中引入html頁(yè)面的方法舉例

    這篇文章主要給大家介紹了關(guān)于Vue3項(xiàng)目中引入html頁(yè)面的相關(guān)資料,Vue3是一個(gè)JavaScript框架,通常我們使用它來(lái)構(gòu)建單頁(yè)應(yīng)用程序(SPA),如果你想在HTML頁(yè)面中使用Vue3,可以參考這篇文章,需要的朋友可以參考下
    2023-09-09
  • vuex實(shí)現(xiàn)的簡(jiǎn)單購(gòu)物車功能示例

    vuex實(shí)現(xiàn)的簡(jiǎn)單購(gòu)物車功能示例

    這篇文章主要介紹了vuex實(shí)現(xiàn)的簡(jiǎn)單購(gòu)物車功能,結(jié)合實(shí)例形式分析了vuex購(gòu)物車組件相關(guān)商品列表、購(gòu)物車創(chuàng)建、添加、刪除、清空等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • 使用vite創(chuàng)建vue3之vite.config.js的配置方式

    使用vite創(chuàng)建vue3之vite.config.js的配置方式

    這篇文章主要介紹了使用vite創(chuàng)建vue3之vite.config.js的配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 在vue中:style 的使用方式匯總

    在vue中:style 的使用方式匯總

    在Vue開(kāi)發(fā)中使用:style綁定樣式是常見(jiàn)需求,應(yīng)注意:class與:style的配合使用,錯(cuò)誤的使用可能導(dǎo)致樣式不生效,正確的方法是使用數(shù)組綁定多個(gè)樣式,這些技巧有助于提高開(kāi)發(fā)效率和保持代碼整潔,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • vue之el-upload使用FormData多文件同時(shí)上傳問(wèn)題

    vue之el-upload使用FormData多文件同時(shí)上傳問(wèn)題

    這篇文章主要介紹了vue之el-upload使用FormData多文件同時(shí)上傳問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue.js實(shí)現(xiàn)大轉(zhuǎn)盤抽獎(jiǎng)總結(jié)及實(shí)現(xiàn)思路

    Vue.js實(shí)現(xiàn)大轉(zhuǎn)盤抽獎(jiǎng)總結(jié)及實(shí)現(xiàn)思路

    這篇文章主要介紹了 Vue.js實(shí)現(xiàn)大轉(zhuǎn)盤抽獎(jiǎng)總結(jié)及實(shí)現(xiàn)思路,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評(píng)論