久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Vue3集成wangEditor v5:后臺富文本編輯器封裝與避坑

Vue3集成wangEditor v5:后臺富文本編輯器封裝與避坑 做后臺管理系統(tǒng)的人早晚會碰到富文本編輯器這道坎。文章發(fā)布、商品詳情、公告通知、幫助文檔、售后條款只要頁面里需要排版就繞不開它。我從 Vue2 時代的 UEditor、TinyMCE 一路用過來中間還折騰過 Quill 和 wangEditor踩的坑足夠?qū)懸槐拘宰?。這篇就聚焦一個很具體的問題在 vue3 項目里把 wangEditor 用起來、用對、用到生產(chǎn)環(huán)境不翻車。這不是一篇搬運官方文檔的教程而是我在幾個真實后臺系統(tǒng)里反復(fù)打磨后留下的記錄包括選型的取舍、組件的封裝方式、上傳接口怎么接、只讀模式怎么切、以及那些官方文檔里不會寫但一定會遇到的詭異故障。剛上手 vue3 的同學能照著抄出一個可用組件帶過項目的同學也能在里面找到幾個能省下半天排查時間的細節(jié)。1. 選型前的冷靜判斷wangEditor 到底適合誰1.1 富文本編輯器其實分三條技術(shù)路線在動手寫代碼之前先想清楚富文本編輯器這個領(lǐng)域到底有幾種做法因為選錯方向比寫錯代碼更致命。第一條路線是基于 contenteditable 直接操作 DOMUEditor、wangEditor 早期版本、Quill 都算這一類特點是實現(xiàn)直觀、可控性強但瀏覽器兼容和光標處理是一大堆臟活。第二條是基于文檔模型如 ProseMirror、Slate的編輯器像 Tiptap、飛書文檔編輯器數(shù)據(jù)以結(jié)構(gòu)化 schema 存儲協(xié)同編輯、撤銷重做、節(jié)點級操作都很優(yōu)雅學習曲線也陡。第三條是Markdown 編輯器比如 Vditor、md-editor-v3輸入的是純文本輸出靠解析適合技術(shù)博客但不太適合運營同學寫商品詳情。wangEditor 屬于第一條路線的成熟產(chǎn)物。它的取舍非常明確上手快、中文文檔友好、開箱即用代價是深度定制能力不如 Tiptap 這類模型驅(qū)動的編輯器。選擇它之前先問自己一個問題——我要的是能寫、能排版、能傳圖還是要做類 Notion 的塊級編輯、要支持多人協(xié)同。如果是前者wangEditor 很合適如果是后者直接去看 Tiptap別在小工具上耗時間。1.2 v5 相比 v4 是一次重寫別混著用很多人栽的第一個跟頭是把 v4 的用法套到 v5 上。這兩個大版本幾乎是兩個不同的庫。v4 的用法是new E(#editor)通過editor.txt.html()讀寫內(nèi)容菜單配置是一套老的對象結(jié)構(gòu)。v5 全面轉(zhuǎn)向了模塊化核心包是wangeditor/editorVue 封裝包是wangeditor/editor-for-vue編輯器實例通過createEditor創(chuàng)建內(nèi)容通過 v-model 或editor.getHtml()獲取銷毀必須顯式調(diào)用editor.destroy()。這個變化帶來的直接影響是你在網(wǎng)上搜到的大部分中文教程如果是 2022 年以前寫的八成是 v4直接抄會報錯最典型的就是TypeError: xxx is not a function。判斷版本有個簡單辦法——看安裝的包名。npm i wangeditor裝的是 v4npm i wangeditor/editor裝的才是 v5。v5 新增了mode: simple這種更簡潔的工具欄形態(tài)也把菜單配置統(tǒng)一收進了MENU_CONF整體更符合現(xiàn)代前端工程化的習慣。1.3 和其他主流方案的橫向?qū)Ρ裙庹f wangEditor 好沒有意義得放到坐標系里看。我把實際項目里用過的幾款放在一起做了個對比判斷維度就三個接入成本、定制深度、生態(tài)活躍度。編輯器數(shù)據(jù)模型上手成本深度定制中文支持典型場景wangEditor v5HTML 字符串低中優(yōu)秀后臺管理、CMSTinyMCEHTML 字符串中高商業(yè)版更強良好企業(yè)級表單Quill 2.xDelta 模型中中高一般輕量嵌入TiptapProseMirror 文檔樹高極高一般協(xié)同、塊編輯md-editor-v3Markdown 文本低中優(yōu)秀技術(shù)社區(qū)從表格能看出來wangEditor 在接入成本低和中文支持好這兩個維度上優(yōu)勢明顯正好命中后臺管理系統(tǒng)的核心訴求——運營同學要的是一個打開就能用、工具欄看得懂、圖片能拖拽上傳的編輯器而不是一個需要專門培訓(xùn)的協(xié)同工具。所以接下來的內(nèi)容都建立在后臺管理系統(tǒng) Vue3 TypeScript Element Plus這個組合上這也是目前國內(nèi)企業(yè)項目最主流的形態(tài)。2. 環(huán)境搭建依賴裝錯后面全是白費2.1 先把項目基線和 Node 版本確認清楚開工前先node -v看一眼。wangEditor v5 依賴現(xiàn)代瀏覽器 API構(gòu)建側(cè)對 Node 版本有要求Node 16 以下在 Vite 4/5 環(huán)境下經(jīng)常出現(xiàn)依賴解析失敗。我的習慣是 Node 18 LTS 起步配合 Vite 5 和 Vue 3.4這個組合目前最穩(wěn)。如果你接手的是一個老項目用 Vue CLI 5 Webpack 5 也能跑只是打包體積優(yōu)化空間會小一些。用 Vite 創(chuàng)建項目的話一路默認走下去就行npm create vitelatest my-admin -- --template vue-ts cd my-admin npm install裝完之后檢查package.json里 vue 的版本確保是 3.2 以上。3.2 之前沒有script setup的穩(wěn)定支持而 wangEditor 的 Vue 封裝在組合式 API 下寫起來最舒服。這一步看著啰嗦但我見過太多次編輯器渲染不出來最后發(fā)現(xiàn)是 Vue 版本太老或者依賴裝了兩份的問題——尤其是當項目里已經(jīng)存在一個舊版本編輯器依賴時npm 的扁平安裝策略會把兩個版本都塞進node_modules運行時就隨機命中癥狀是偶發(fā)的白屏。2.2 兩個包各管什么一個都不能少v5 的 Vue3 集成需要裝兩個包這是很多人第一次會困惑的地方npm install wangeditor/editor npm install wangeditor/editor-for-vuenext第一個wangeditor/editor是編輯器內(nèi)核包含編輯器實例、菜單、插件、樣式體積大頭都在這里。第二個wangeditor/editor-for-vue是 Vue 的組件封裝把Editor和Toolbar兩個組件暴露出來讓你能在模板里直接寫Editor /。注意next這個標簽非常關(guān)鍵。Vue3 版本必須用next不加的話會裝上適配 Vue2 的版本然后在script setup里 import 就報錯。裝完可以確認一下版本號npm list wangeditor/editor-for-vue正常應(yīng)該看到wangeditor/editor-for-vue5.x.x之類。如果看到的是 1.x那就是裝錯了卸載重裝。2.3 樣式文件必須單獨引入這是新手最容易漏的一步也是導(dǎo)致工具欄變成一堆無樣式的文字鏈接這個經(jīng)典問題的元兇。wangEditor 的樣式不在組件內(nèi)部自動注入需要你手動引入一次import wangeditor/editor/dist/css/style.css引入位置有講究。寫在script setup頂部是最簡單的方式但要注意它會被打進當前頁面的 chunk。如果你在多個頁面都用編輯器可以把這個引入放到全局的main.ts里代價是首屏會多加載一份樣式。我更推薦的做法是配合路由懶加載讓編輯器頁面的 chunk 自己帶上樣式首屏用戶不受影響。還有個坑是style scoped。有些同學想在 scoped 樣式里覆蓋編輯器的樣式比如改工具欄背景色結(jié)果發(fā)現(xiàn)不生效。原因是 wangEditor 的 DOM 結(jié)構(gòu)是動態(tài)生成的scoped 的屬性選擇器加不到那些節(jié)點上。要覆蓋樣式得用:deep()或者干脆寫一個不帶 scoped 的全局樣式塊專門管編輯器。3. 組件封裝從能跑到好用3.1 最小可用版本與 shallowRef 的生死線先上能跑起來的最小版本。新建src/components/RichEditor.vuetemplate div classrich-editor-wrapper :style{ border: 1px solid #dcdfe6 } Toolbar :editoreditorRef :defaultConfigtoolbarConfig :modemode classeditor-toolbar / Editor :defaultConfigeditorConfig :modemode :style{ height: height px, overflowY: hidden } v-modelvalueHtml onCreatedhandleCreated onChangehandleChange / /div /template script setup langts import wangeditor/editor/dist/css/style.css import { onBeforeUnmount, ref, shallowRef } from vue import { Editor, Toolbar } from wangeditor/editor-for-vue import type { IDomEditor, IEditorConfig, IToolbarConfig } from wangeditor/editor const props withDefaults( defineProps{ modelValue: string height?: number mode?: default | simple readonly?: boolean }(), { modelValue: , height: 400, mode: default, readonly: false } ) const emit defineEmits{ (e: update:modelValue, value: string): void }() const editorRef shallowRefIDomEditor() const valueHtml ref(props.modelValue) const mode props.mode const toolbarConfig: PartialIToolbarConfig { excludeKeys: [group-video, insertVideo] } const editorConfig: PartialIEditorConfig { placeholder: 請輸入內(nèi)容... } const handleCreated (editor: IDomEditor) { editorRef.value editor if (props.readonly) editor.disable() } const handleChange (editor: IDomEditor) { emit(update:modelValue, editor.getHtml()) } onBeforeUnmount(() { const editor editorRef.value if (editor) editor.destroy() }) /script這段代碼里最需要強調(diào)的是shallowRef。editorRef必須用shallowRef絕對不能用ref或者reactive。原因是 Vue3 的ref會對對象做深度響應(yīng)式代理而 wangEditor 內(nèi)部維護了大量 DOM 引用和循環(huán)引用被 Proxy 包一層之后編輯器在獲取選區(qū)、操作節(jié)點時會拿不到原始對象癥狀是光標亂跳、菜單點擊無響應(yīng)、插入圖片報錯。這個坑我在兩個項目里都踩過第二次才反應(yīng)過來是響應(yīng)式代理的問題。官方文檔里提了一句但很容易被忽略這里我必須再強調(diào)一次。3.2 工具欄裁剪與模式切換默認工具欄把所有菜單都堆出來視頻、公式、代碼塊全在對一個只發(fā)公告的后臺系統(tǒng)來說太冗余。toolbarConfig的excludeKeys負責排除insertKeys負責插入或調(diào)整順序。常用的菜單 key 我整理了一份方便你對著刪功能分類菜單 key建議標題/引用headerSelect, blockquote保留基礎(chǔ)格式bold, underline, italic, through, code保留顏色color, bgColor按需字號字色fontSize, fontFamily, lineHeight按需列表縮進bulletedList, numberedList, indent, delIndent保留對齊justifyLeft, justifyCenter, justifyRight, justifyJustify保留圖片uploadImage, insertImage保留 uploadImage鏈接insertLink保留表格insertTable按需代碼塊codeBlock技術(shù)類保留分割線divider保留撤銷重做undo, redo保留全屏fullScreen保留視頻group-video后臺一般刪掉mode有兩個取值default是完整模式simple是簡潔模式工具欄只留最核心的十幾個菜單視覺上更輕。選哪個取決于使用場景——面向運營的公告編輯器用simple面向內(nèi)容編輯的 CMS 用default。注意mode一般只在初始化時設(shè)置運行中動態(tài)切換會導(dǎo)致工具欄重建體驗上會有閃動不建議做成用戶可切換的選項。3.3 圖片上傳必須從 base64 切換到服務(wù)端不加任何配置時wangEditor 插入圖片走的是 base64 內(nèi)聯(lián)。寫幾篇文章沒問題但要是一篇長圖文里插了十幾張高清圖生成的 HTML 字符串會膨脹到幾兆存進數(shù)據(jù)庫字段會直接崩接口傳輸也會超時。所以圖片上傳必須改成服務(wù)端模式。配置位置在editorConfig.MENU_CONF[uploadImage]editorConfig.MENU_CONF[uploadImage] { server: /api/file/upload, fieldName: file, maxFileSize: 5 * 1024 * 1024, allowedFileTypes: [image/*], headers: { Authorization: Bearer getToken() }, customInsert(res, insertFn) { if (res.code ! 200) return insertFn(res.data.url, res.data.name, res.data.url) }, onFailed(file, res) { ElMessage.error(圖片上傳失敗 (res.message || 未知錯誤)) } }幾個要點拆開說。server是上傳地址走相對路徑讓 Vite 的代理去轉(zhuǎn)發(fā)避免開發(fā)環(huán)境跨域。fieldName要和后端接口約定的字段名一致后端用MultipartFile接的話通常就是file。maxFileSize單位是字節(jié)5MB 是我個人的經(jīng)驗值太大容易拖慢接口太小運營會抱怨截圖傳不上去。真正關(guān)鍵的是customInsert。默認情況下 wangEditor 會按自己的規(guī)則去解析返回數(shù)據(jù)它假設(shè)返回體里有個data.url字段。但你項目后端的返回結(jié)構(gòu)很可能不是這個形狀比如是{ code, msg, data: { fileUrl, fileName } }這時候默認解析就插不進去控制臺能看到 undefined。customInsert給了你完全接管解析的機會拿到res之后自己取出 URL調(diào)用insertFn(url, alt, href)插進去就行三個參數(shù)分別是圖片地址、替代文字、跳轉(zhuǎn)鏈接后兩個可以傳空字符串。如果你的上傳邏輯更復(fù)雜比如要先拿簽名再傳對象存儲用customUpload完全接管上傳過程editorConfig.MENU_CONF[uploadImage] { async customUpload(file, insertFn) { const formData new FormData() formData.append(file, file) const { data } await request.post(/api/upload, formData) insertFn(data.url, data.name, data.url) } }用一個/upload接口同時處理粘貼圖片和拖拽上傳是最省心的做法。3.4 v-model 綁定要繞開光標跳動這個雷直觀上大家會寫v-modelvalueHtml然后監(jiān)聽valueHtml的變化往外傳。這能跑但有個隱患編輯器內(nèi)部也會修改valueHtml如果你在外層又監(jiān)聽valueHtml并回寫父組件父組件再把值傳回來就形成了一個回環(huán)。光標位置在每次回寫后都會被重置到開頭用戶打字時感覺像有人在搶鍵盤。更穩(wěn)的做法是放棄v-model的自動雙向綁定改用onChange手動往外拋Editor :defaultConfigeditorConfig :modemode onCreatedhandleCreated onChangehandleChange /const handleChange (editor: IDomEditor) { emit(update:modelValue, editor.getHtml()) }父組件用v-model:modelValue接收即可。這里要理解一個原則——編輯器的內(nèi)容只有兩個出口初始化時的賦值和用戶編輯時的 onChange。除此之外任何時候去改編輯器的內(nèi)容都可能觸發(fā)重渲染和光標問題?;仫@歷史數(shù)據(jù)時直接把值放到初始化的valueHtml里之后就別再動它。4. 高頻故障排查與避坑清單4.1 編輯器實例為 null 和重復(fù)創(chuàng)建最常見的報錯是Cannot read properties of undefined (reading getHtml)原因通常是你在onCreated之前就去調(diào)用了editorRef.value的方法。editorRef是在handleCreated回調(diào)里才被賦值的而handleCreated在組件 mounted 之后才觸發(fā)。所以任何需要在編輯器就緒后做的事比如回填內(nèi)容、設(shè)置只讀、聚焦都得放在handleCreated里面或者用一個isReady標志位守著。第二個坑是重復(fù)創(chuàng)建。如果你在onMounted里手動createEditor同時又用了Editor組件編輯器會被創(chuàng)建兩次頁面上出現(xiàn)兩個工具欄或者內(nèi)容區(qū)閃爍。用官方組件就不要自己 create兩套東西二選一。還有一種情況是熱更新導(dǎo)致的重復(fù)實例開發(fā)時改代碼觸發(fā)熱更新舊實例沒銷毀干凈表現(xiàn)是切換頁面后舊內(nèi)容殘留。解決方式就是在onBeforeUnmount里老老實實editor.destroy()一行都不能省。editor.destroy()不只是清理 DOM它還會解綁所有事件監(jiān)聽、清空內(nèi)部定時器和選區(qū)緩存。漏掉它長時間運行的 SPA 會在連續(xù)打開關(guān)閉幾十個編輯器頁面后明顯卡頓內(nèi)存占用一路往上漲。4.2 樣式丟失與下拉菜單被遮擋工具欄渲染成純文字、菜單彈層藏在別的元素底下這兩類是樣式問題的高發(fā)區(qū)。第一個問題的解法前面說過補上style.css的引入。如果引入了還是不生效檢查一下項目里是不是有其他全局樣式把.w-e-*類的樣式覆蓋了尤其是那些用*選擇器重置 margin、padding 的老代碼會把編輯器的間距全干掉。下拉菜單被遮擋的根源是z-index。wangEditor 的彈層默認層級不算太高如果編輯器放在 Element Plus 的 Dialog 或者 Drawer 里而那個容器的層級更高菜單就會被壓住。常規(guī)解法是給外層容器和編輯器加個更大的z-index.rich-editor-wrapper { position: relative; z-index: 100; }如果彈層還是出不來可以用editorConfig里的scroll配置成false讓工具欄不吸頂某些布局下能繞開層級計算。我遇到過最麻煩的一次是編輯器在抽屜里抽屜本身有transform動畫導(dǎo)致position: fixed的彈層定位基準錯亂最后是把編輯器移到抽屜外的做法才徹底解決。所以選容器的時候盡量別把富文本編輯器塞進有動畫的浮層里。4.3 與 Element Plus 表單聯(lián)動的校驗問題后端管理系統(tǒng)基本都配 Element Plus編輯器要嵌進el-form-item里做必填校驗。這里有兩個細節(jié)。第一個是觸發(fā)時機。el-form-item的trigger要設(shè)成change然后編輯器的onChange里手動觸發(fā)校驗const handleChange (editor) { const html editor.getHtml() emit(update:modelValue, html) formRef.value?.validateField(content) }不手動觸發(fā)的話用戶輸入完內(nèi)容點提交校驗規(guī)則拿到的還是舊值會誤報內(nèi)容不能為空。第二個是內(nèi)容為空的判斷。用戶如果只敲了幾個空格或者插入了一張圖片editor.getHtml()返回的是pbr/p或者pimg ...//p直接判空字符串是不準的。穩(wěn)妥的做法是先剝標簽再判空const isEmptyHtml (html) { return html.replace(/[^]/g, ).replace(/nbsp;/g, ).trim() }這里要注意純圖片的內(nèi)容會被判成空但業(yè)務(wù)上往往認為有圖就算有內(nèi)容。所以更精細的規(guī)則可以判斷是否包含img標簽包含則視為非空。這種邊界判斷看著瑣碎卻直接決定上線后運營會不會天天來找你。4.4 只讀模式的幾種實現(xiàn)方式對比詳情頁展示歷史內(nèi)容時需要只讀商品預(yù)覽時需要只讀審核頁面也需要只讀。wangEditor v5 提供了幾種實現(xiàn)各有適用場景實現(xiàn)方式寫法優(yōu)點局限disable()editor.disable()靈活、可動態(tài)切換需拿實例時機要對defaultConfig 中設(shè) readOnly{ readOnly: true }初始化即生效無法運行中切換點擊后 blureditor.blur()簡單只擋焦點仍可編輯換純 HTML 渲染v-html不加載編輯器性能好無編輯器樣式能力我的選擇是需要保留編輯器樣式且隨時可能切回編輯態(tài)的場景用editor.disable()純展示、不打算再編輯的場景直接v-html渲染 HTML 字符串別加載整個編輯器內(nèi)核。這個區(qū)分很重要詳情頁如果也加載編輯器首屏體積白白多幾百 KB明明用戶只是想看文章。順帶說一個只讀相關(guān)的細節(jié)。editor.disable()生效后工具欄上的菜單會變灰但如果你希望工具欄整個隱藏用v-if控制Toolbar的渲染更干凈Toolbar v-if!readonly :editoreditorRef /另外要提醒切換只讀狀態(tài)后editor.getHtml()依然能正常調(diào)用別擔心 disable 之后拿不到內(nèi)容。4.5 常見問題速查表把上面這些整理成一張排查表出問題時對著找能省不少時間?,F(xiàn)象可能原因處理方式工具欄無樣式未引入 style.css補上全局樣式引入光標跳到開頭v-model 雙向回寫改用 onChange 單向拋出菜單點擊無效editorRef 用了 ref/reactive換成 shallowRef插入圖片報錯返回結(jié)構(gòu)不匹配配置 customInsert內(nèi)容拿不到在 onCreated 之前調(diào)用加 isReady 守位頁面切換后卡頓未調(diào)用 destroyonBeforeUnmount 中銷毀彈層被遮z-index 沖突調(diào)高層級或換容器內(nèi)容判空不準空標簽被判為有內(nèi)容剝標簽后再判空開發(fā)環(huán)境正常、線上白屏樣式 chunk 未跟隨檢查懶加載配置5. 進階內(nèi)容安全、框架集成與體積控制5.1 富文本的 XSS 防護不能省富文本編輯器最容易被忽視的安全問題就是 XSS。用戶尤其是后臺運營提交的 HTML 會原樣存儲如果詳情頁用v-html直接渲染攻擊者只要在編輯器里塞一段帶事件的標簽比如img srcx onerroralert(document.cookie)頁面一打開就可能被利用。雖然 wangEditor 編輯時過濾了一部分危險標簽但通過接口直接提交構(gòu)造好的 HTML編輯器的過濾根本不起作用。所以渲染側(cè)必須自己再過一道。我的做法是引入 DOMPurify在提交前和渲染前各清洗一次import DOMPurify from dompurify const safeHtml DOMPurify.sanitize(rawHtml, { ALLOWED_TAGS: [p, br, strong, em, u, h1, h2, h3, ul, ol, li, a, img, blockquote, table, tr, td, th], ALLOWED_ATTR: [href, src, alt, title, target, style, class] })白名單式過濾比黑名單靠譜得多只放行你明確需要的標簽和屬性其余一律去掉。注意style屬性本身也可能藏東西如果你對安全要求更高可以把 style 也去掉改用自定義類名控制樣式。這一步做起來有點煩但一旦內(nèi)容被注入事故等級完全不一樣值得花兩個小時配好。5.2 在若依、JeecgBoot 這類框架里集成的注意點很多同學是在若依RuoYi-Vue3或者 JeecgBoot 的 Vue3 版本里做二次開發(fā)這些框架本身有自己的請求封裝、全局樣式、權(quán)限指令直接塞編輯器會撞上幾個問題。第一個是請求實例??蚣芾锿ǔ0?axios 封裝成了request或者service帶了統(tǒng)一的 token 注入、錯誤提示、結(jié)果解包。圖片上傳時最好復(fù)用這個實例而不是在新開一個 axios否則會出現(xiàn) token 沒帶上、上傳接口 401 的情況。如果用 wangEditor 的server配置走內(nèi)置上傳記得在headers里手動補上 Authorization或者直接用customUpload走項目自己的 request。第二個是全局樣式污染。若依那套后臺框架有一大堆覆蓋性的全局 CSS有時候會把編輯器里的列表符號干掉、把表格邊框清掉。排查方式是在編輯器的樣式后面追加一段更高優(yōu)先級的覆蓋.w-e-text-container ul { list-style: disc !important; } .w-e-text-container table { border-collapse: collapse; }第三個是 TypeScript 報錯。有些框架的 tsconfig 開了strict而wangeditor/editor的類型聲明在某些版本里不夠嚴謹會在editorRef.value的賦值處提示類型不匹配。簡單處理是用shallowRefIDomEditor | undefined()拿到實例后做一次非空斷言別為了消錯就把它改成any那等于把類型檢查全關(guān)了。5.3 體積優(yōu)化別讓編輯器拖慢首屏我把wangeditor/editor單獨打出來看過gzip 后大概兩百多 KB對于一個管理后臺來說不算夸張但如果它被打進首屏 chunk登錄頁的加載時間會明顯變長——用戶根本用不到編輯器憑什么要等他加載。解法是讓它按需進入路由 chunk。如果你用的是 Vite路由懶加載本身就做了這件事只要編輯器組件被用在懶加載路由里它就不會進首屏const routes [ { path: /article/edit, component: () import(/views/article/Edit.vue) } ]如果編輯器被用在一個不懶加載的公共布局里用defineAsyncComponent包一層const RichEditor defineAsyncComponent(() import(/components/RichEditor.vue))配合Suspense或者加載占位用戶體驗會好很多。還有一個容易被忽略的體積點——如果項目里只用到了基礎(chǔ)排版能力可以在toolbarConfig里把視頻、公式這些重插件的菜單去掉雖然不能直接搖掉這部分代碼但能避免加載相關(guān)資源。5.4 詳情頁只讀展示的取舍最后聊聊詳情頁。我見過太多項目在詳情頁也掛一個完整的編輯器組件只為展示一段富文本。這樣做有兩個代價一是多加載兩百多 KB 的編輯器內(nèi)核二是編輯器的 DOM 結(jié)構(gòu)比直接渲染 HTML 復(fù)雜得多列表長了之后頁面滾動會明顯發(fā)澀。如果詳情頁不需要任何編輯能力正確做法是只渲染 HTMLtemplate div classarticle-detail v-htmlsafeHtml/div /template然后在全局樣式里給富文本標簽補上基礎(chǔ)樣式讓它看起來和編輯器里一致。這里有個小技巧——把編輯器里用到的樣式抽一份到公共樣式文件里編輯態(tài)和展示態(tài)共用避免出現(xiàn)編輯時好看、展示時排版全亂的尷尬.article-detail img { max-width: 100%; height: auto; } .article-detail table { border-collapse: collapse; width: 100%; } .article-detail p { margin: 8px 0; line-height: 1.8; }如果詳情頁確實需要保留編輯器外殼比如用戶要看到和編輯時一樣的界面再退回用editor.disable()。判斷標準很簡單用戶在這頁會改內(nèi)容嗎會用編輯器不會用 v-html。6. 一些不那么官方但很有用的經(jīng)驗折騰了這么多項目有幾個體會想單獨拎出來說。第一個是關(guān)于版本鎖定。wangEditor v5 更新頻率不算高但每次小版本升級偶爾會帶出小問題比如菜單配置字段微調(diào)、樣式類名變化。生產(chǎn)項目里我建議把版本號寫死不要用^放開次版本號等新版本在測試環(huán)境跑過一輪再升。這個建議對所有第三方 UI 依賴都適用編輯器尤其敏感因為它的行為直接暴露給運營同學。第二個是關(guān)于封裝粒度的取舍。我一開始把編輯器封成了支持十幾項配置的萬能組件結(jié)果每次維護都要在一堆 props 里翻找。后來改成只暴露四個核心 propsmodelValue、height、readonly、mode圖片上傳配置通過一個uploadConfig對象整體傳入。這樣既保證了復(fù)用又不至于讓組件變成一個配置黑洞。組件這東西暴露的接口越少別人越愿意用。第三個是關(guān)于圖片上傳的聯(lián)調(diào)。開發(fā)環(huán)境和生產(chǎn)環(huán)境的圖片域名經(jīng)常不一樣配置里寫的server如果是絕對地址切環(huán)境就得改代碼。我現(xiàn)在的做法是統(tǒng)一走相對路徑讓 Nginx 或者 Vite 代理去轉(zhuǎn)發(fā)配置里一行都不用改。如果后端返回的圖片地址是完整的對象存儲域名那在customInsert里可以做一層轉(zhuǎn)換開發(fā)環(huán)境替換成代理前綴生產(chǎn)環(huán)境原樣輸出。第四個是關(guān)于內(nèi)容回顯的時機。從接口拿到歷史 HTML 之后不要急著往valueHtml里塞。因為編輯器初始化是異步的你在onMounted里賦值的時候組件可能還沒 ready內(nèi)容會被吃掉。穩(wěn)妥的流程是接口數(shù)據(jù)先存進一個變量在handleCreated里再賦給編輯器的初始內(nèi)容或者直接用editor.setHtml()主動設(shè)置。這一點我在兩個項目里都翻過車癥狀是編輯已有文章時內(nèi)容展示不出來排查半天才發(fā)現(xiàn)是時序問題。最后一個提醒關(guān)于測試。富文本編輯器的坑大多不是邏輯問題而是瀏覽器差異和時序問題所以別只在 Chrome 里點兩下了事。至少要在你要支持的瀏覽器里各走一遍完整流程新建內(nèi)容、插入圖片、加表格、保存、回顯、切只讀、再切回編輯。尤其是插入圖片后內(nèi)容能否正確保存是最容易在不同環(huán)境表現(xiàn)不一致的環(huán)節(jié)。我現(xiàn)在的習慣是給編輯器頁面寫一個兩分鐘的冒煙 checklist每次升級依賴或者改樣式前都過一遍花的時間很少省下的事故排查時間卻很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国人欧美精品一区二区| www欧美91| se吧提供91精品国产91久久久久久| 中文字幕片| 亚洲色堂免费视频| 精品精品精品| 亚洲AV成人无码久久精品播放| 男人的天堂网页| 夜夜嗨一区| 91中文精品日韩欧美在线| 在线观看亚洲专区| 免费少妇一区二区| 亚洲91在线| 九九九九一区| 青青草中日韩在线| 99 国产丝袜在线| 亚洲日韩人妻中文字幕一区| 国产日韩久久| 中文三一区| 久9爱精品| 九九成人精品| 色情亚洲日本成人| 高树玛利亚无码流出| 丁香婷婷色五月| 高清无码 国产精品| 一级性爱视频免费观看| 夜夜爽夜夜操| 欧美狠狠干| 国产精品九九九| 欧美的精品的视频| 五月天婷婷社区| 久偷拍欧美日韩三区| 精品十三区| 久久精品一区| 青青草中日韩在线| 九九九九九九免费视频| 色路综合| 色吧91| 啊啊啊啊免费视频| 91亚洲在线| 日韩有码中文字幕女同性恋| 97碰碰色| 国产青一二三| 天操老女人| 97公开久久| 91av天美性媒精品视频| 秋霞鲁丝午夜无码一区二区三| 在线视频一区二区传媒| 精品一区二区三区蜜桃臀www| 青青草手机在线免费观看| 亚洲欧洲无码97久久精品| 亚洲精品久久久久久久久豆丁网| 91色黑人少妇| 中文字幕人乱码中文字的预防方法 | 91九九| 色综合98| 国产欧美后入| 狠日欧美| 中文字幕日韩电影人妻| 国产精品呦一区二区三区| 天堂中文日本在线观看| 亚洲丁香花色| 激情露脸爱| 亚洲色91C| 亚洲中文字幕熟女少妇一区二区| 女沟厕偷窥piss小便| 亚洲中文字幕在现观看| 91精品久久久久久久久久| 我中文字幕6区| 久久天堂网| 欧美精品黑人猛交高潮| 午夜无遮挡男女啪啪视频| 国产三区免费在线观看| 亚洲限制级在线| 久久久久久9999| 亚洲不卡一| 一级片视频啪啪| 亚洲av综合色区无码一| 亚洲欧美色综合| 狠操91,com| 久久国产乱子伦精品免费女,网站| 97超碰超碰| 强奸乱伦亚洲第一页| 五月色网| 国产人妻精品一区二区三区秋霞| 一区二区免费电影久久| 天天操天天插| 日本大香蕉综合网红本杳社区| 欧洲在线性爱视频| 国产精品亚洲美女久久久久| 青青草大香蕉在线视频| 国产成人综合在线播放| 女人妻一区| 999精品乱码| 国产人人干| 国产精品经典一卡久久久| 综合网97| 萌白酱自拍视频| 国产女上位好爽在线| 亚州图片第一页| 91精品人| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 金典av| 中文字幕在线免费观看 | 天天肏天天干| 久久99网站| 欧美变态激情网| 男人的天堂久久久| 亚洲色诱惑| 欧美综合传媒| 亚洲综合婷婷| 九九人妻| 婷婷精品视频| 东京太热男人的天堂久久久| 日韩紧密久久| 久久精品国产Aⅴ| 欧美 亚洲 制服 精品| av日韩中文字幕| 3p国产欧美99热| 亚欧美色图| 人妻 丝袜美腿 中文字幕| 欧美大香蕉在线观看| 亚洲图片第一页| 久草大| 人妻天天爽夜夜爽2| 三级AV入口| 超碰在线974| 麻豆久久精品亚洲精品88| 五月天色五月| 啊啊啊在线观看| 91亚·色| 亚洲天堂美臀在线| 综合久久欧美| 亚欧美色| 91成人社区| 一级特黄aaa大片在线观看成人一级片在线观看| 青青操少妇| 国产野战露脸在线播放| 东北女人性交| 午夜欧美J进J出白浆流出久久久| 久久精品国产AV一区二区三区| 欧美性,色九九| 丁香六月激情| 亚洲精品97p| 亚洲男人天堂Av| 免费AV中文网在线观看| 欧洲一区二区三区免费| 日韩一级特黄av毛片| 天堂精品一区| 亚洲天堂中文字幕无码男同| 精品一级毛片在线观看| 午夜福利 成人 91| 美女露胸露屁股| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 亚洲污污网站| 婷婷色一区| 无码外流操逼视频| 性欧美第一页| 欧美精品91| 国产树林里野战在线看| 一区二区三区在线美女| 蜜桃天美传媒AV一区二区三区| 国产av尤物| 日本熟女免费視颖| 日本一二区不卡| 97丝袜亚洲在线播放| 亚洲天堂热| 精品久久久久黄少妇| 在线国产福利网址导航| 青青青在线高清视频在线一二三四区| 九九九九免费高| 亚洲丝袜二区| 九月丁香综合网| 1区2区3区视频| 神马久久69| 人人澡人人爽人人精品| 国产精品久久久久av| 婷婷久久五月综合激情| 青娱乐国产剧情av一区| 超碰9 7女人 | 老司机深夜18禁污污网站| 乱色老一区二区三区的观看方式| 亚洲不卡不卡中文字幕不卡 | 99热这里是精品| 国产多人在线观看视频| 中文字幕激情小说| 99re视频在线播放青草| 夜色97| 国产乱婷婷精品二区三区| 综合久久欧美| 日欧操屄视频| 91日本在线观看| 奇米狠999| 极品销魂美女一区二区| 大香蕉欧美| 婷婷五月天在线观看| 岛国激情视频在线观看| 成年人网站在线免费观看| 噜噜噜噜久久久精品免费| 亚洲熟女偷拍在线观看| 牛牛久久国产精品视频一二三| 91色碰| www.色婷婷| 伊人久久艹| 欧美专区日本专区| 色婷亚洲五月在线观看| 五月丁香啪啪啪| 91久久久久久| 成人精品在线观看| 亚洲五月天激情| 爱做久久久久久| 懂色AV蜜臀无码精品APP | 91在线欧色| 思思99热| 亚洲第一页欧美| 国产精品久久久久绯色| 妇女视频网站| 日本三级精品| 亚洲欧美综合| 激情小说日韩无码| 亚洲另类小说卡通动漫| 欧美国产伊人久久久久| 久99久视频| 欧美性爱五月天| 日韩啪啪视频| 亚洲97综| 超碰人妻天天干| 99久久e免费热视| 日本三级R| 超碰在线成人| 久久蜜桃综合网| 欧美aⅴ99久久黑人专区| 久久国产999| 亚洲色图片区| 国产精品无码成人精品| 在线观看岛国有码| 亚码激情| 日韩综合97P| 国产乱码久久久| 爱爱动态60秒| 欧美日本一区二区a人| 成人av动漫在线观看| 久久人妻视频| 伦在线97| 一级AV性爱| 国产Aα| 色综合五月天| 加勒比东京热五月天天堂网| 天天综合网网欲色| 秋霞影音一区二区三区| 91九九九馒头| 无码精品啪啪啪一区二区三区三州| 欧美91网| 91精品久久久久五月天精品| 国产免费一区二区三区最新不卡| 99蜜桃臀亚洲成人在线观看| 国产激情在线| 亚洲一区二区三区欧美日韩| 啊嗯好大视频在线观看| 亚洲精品 欧美97色色| 国产欧美在线观看免费观看| 美女诱惑爱爱| 亚洲国产精品无石码久久 | 美女97超碰| 欧美黑人168页欧美黑人167| 蜜乳AV免费观看| 九九99精品| 久久人爽| 国产一区二区成人av在线播放| 国人欧美精品一区二区| 亚洲区限制级| 久久亚洲国产成人| 丰满少妇一区二区三区专区| 日本大香蕉综合网红本杳社区| 中文字幕日韩人妻视频| 青青草视频在线观看一区二区| 欧美日韩国产精品久久色婷婷| 日韩精品色呦呦| 中文字幕日韩综合| 97 色综合| 狠狠五月天| 天天操天天日青青草超碰av| 欧美特大黄一级片片免费| 国产美女激情| 爱av免费| 欧美极品色| 久久五月天婷婷丁香中文字幕| 久久久艹艹艹| 中文字幕三四区| 精品区9| 天堂综合网| 五月婷婷久久综合| 青青草这里只有精品| 亚洲欧美国产其他二区| 久久婷婷成人综合色怡春院| 热久久精品| 青娱乐休闲视频在线观看| 色综合五月天| 亚洲综合第一页| 久久天天摸| 亚州欧美色图| 成人在线午夜视频一区| 综合久久婷婷| 中文字幕熟女人妻丝袜| 亚洲色入欧美| 五月婷婷丁香中文字幕| 欧成人精品一区二区三区| 日本在线一二| 精品无码不卡视频| 亚洲美腿丝袜香蕉影视欧美成人| 激情五月天色色网| 热99这里有精品综合久久| 欧美色图片91| 免费观看的黄色的网站| 欧美亚洲中文字幕| 97午夜剧场日韩| 牛牛操视频逼| 亚洲区小说| 东京热激情视频一二三区| 日韩欧美亚洲自拍偷拍| 蜜桃臀久久| 夜夜一区二区| 人人潮人人摸| 大香久久| 神马久久久久久久久久| 91超碰人人操| 欧美区亚洲区偷拍区| 日日妻色网| 色五月综合| 亚洲av无码成电影在线播放| 亚洲素人综合| 精品久久久久黄少妇| 国产麻豆福利av在线播放| 密臀在线视频| 嗯嗯啊啊好疼| 天美精品av| 操逼天美3区| 97视频免费在线| 久久久久久大| 色色99| 2017人人操,人人摸| 欧美色交| 日韩精品三级片长长久久| 激情综合色| 亚洲高清无毛一区二区| 综合网欧美| 超碰碰小说97| 欧亚久久偷拍视频| 丁香五月成人| 色婷婷香蕉| 欧洲亚洲国产综合在线| 日韩有码专区| 人人妻人人澡人人爽人人精品浪潮| 天天舔九色婷婷| 色五月婷婷色| 福利在线黄片| 亚洲三区视频| 久久中文字幕不卡人妻| 亚洲色交| 欧综合网| 老司机福利社视频在线观看| 久久日本熟妇熟色高清| 四虎AV无码| 亚洲精品色| 一级A片女人高潮叫床| 欧美性爱无码一区二区三区| 免费操逼91| 欧美综合色图网| 人人澡人人澡人人| 青青久日| 久操电影网| 日韩欧美国产高清视频| 日韩激情毛片一级久久久| 夜夜欢天天干| 熟妇人妻精品一区二区| 欧美视频一区二区三区| 久射吧| 十八禁一区二区无码观看| 美骚妇av高清在线| 久久一本大香蕉 | 欧美成熟性爱精品| 国产精品一区午夜福利| 亚洲AV噜噜狠狠网址蜜桃动漫| 国产精品4p在线观看| 狠狠操狠狠操操| 69一区二区三区 | 日韩中文字幕人妻视频| 亚洲天堂中文字| 国产Av超碰| 一本精品日本在线视频精品| 强奸乱伦AV网址| 自拍偷拍草一草| 日韩黄片视频试看| 中日高清无码操逼视频| 97操操| 淫妻综合网| 天天91~综合入口| 欧洲中文字幕| 欧美青青视频| 久热99999| 色97干| 成年无码动漫av片无尽在线 | 国产第25页在线观看| 无码人妻丰满热妇又大又粗| 精品九九九九九九| 无码一区免费在线不卡| 天天色,天天干,天天干| 国产亚洲一黄| 日韩欧美水蜜桃人妻| 国偷自 一区二区| 久久久久九九九九九| 91 丝袜在线播放| 色在线亚洲视频www| 四虎影院成年人片| 夜夜操91744565| 韩国国产欧美情侣视频在线| 欧美在线电影| www.yeyecao| 欧美丰满熟妇XXXX性ppX人交| 91蜜桃婷婷狠狠久久综合9色| 台湾佬激情综合| 色 亚洲 91| 96久久久久| 国产成人自拍视频视频| 天天爽人人综合免费7799| 欧美 亚洲 大香| 蜜桃臀久久| 精品99999| 99精品久久久久久久婷婷| 91视频国品一二三区| 亚洲色图美腿丝袜| 老女人综合网| 超碰九色| 伊人少妇久久久| 激情五月天中文字幕色| 久久九九网| 欧美国产有色电影| 天天视频黄| 99热色精品| 久久精品视| 一区二区三区免费视频入口| 激情文学网伊人| 中文字幕乱偷人妻久久艾草网| 蜜臀久久99精品久久久久久-DVD| 尤物一级在线免费观看| 久久綜合很很很| 日本不卡五区| suv精产一二三区| 亚洲AV成人无码一二三久久| 中文字暮97| 性高潮久久久久久久久久久| 欧美日韩香蕉| 大肉棒导航| 久久亚洲中文字幕视频| 爽爽歪在线视频| 97色欧洲| 婷婷久久五月| 熟女熟妇一区二区三四区| 国产精品岛国片在线观看| 麻豆 亚洲 97| 懂色中文一区二区三区| 色狠狠综合噜一二三区| 天天上日日上日韩精品| 一区二区三区男女操逼黄色小电影| 四虎在线视频| 日本片日本片祼观看网站在线看中文版网页在线看| 色偷偷男人的天堂麻豆| 久久久久久国产精品免费网站| 加勒比AV网| 久久无码一区二区二三区性色| 免费的av网| 国产又粗又大硬免费色网视频| 夜夜一区二区| 91色综合| 青娱乐蜜桃臀AV色婷| 天天色天天干天天爱| 玖玖资源中文字幕制服丝袜| 高潮毛片无遮挡高清免费| 一牛一区二区三区久久| 综合 欧美 亚洲 日本| 老司机免费视频在线91| 日韩激情啪啪| 久久久四区| 久久免费中文字幕在线观看| 人人么人人操| 欧美日韩亚洲一区二区在线观看| 国产女人9999| 日韩精品中文字幕二区| 亚洲性天堂| 国产视频三区四区| 人人操肉肉| 亚洲精品人伦一区二区| 91丨九色丨国产丨人妻在线 | 国产suv精品一区二区四区999 | 国产亚洲精品美女久久久久久2021| 日本精品88888888| ji熟女.com| 91高潮喷水美女| 久久一区二区三区入口| 男人的天堂VA| 蜜桃成人1区2区3区| 麻豆 美女 丝袜 人妻 中文| 猛交交| 啊啊啊啊啊在线| 99热99re超碰精品| 人妻丰满熟妇一区二区三| 欧洲亚洲天堂精品| 色色色999| 在线午夜成人无码视频| 91撸色网 玖玖网 欧美| 亚洲最大AV网| 99re免费| 少妇丝袜在线观看AV| 亚洲色诱惑| 黄色无码高清黄色无码网站| 大香蕉啪啪啪啪在线| 日本精品高清一二区一本到| 亚洲精品97| 97精品国产手机| 人人看人人摸人人色| 不卡日本一区二区| 精品无码人妻一区二区免费蜜桃| 一区二区三区激情在线观看| 精品综合久久久久久五月天| 精品视频久久区| 97中文超碰| 国产久久久久久| 狠狠激情综合狠狠操中文字幕| 日韩综合色图| 97超碰国产亚洲精品| 刺激性视频黄页| 乱色视频中文字幕| 大香蕉乱级| 久久久月天| 欧美日韩亚洲天堂网| 丁香五月成人| 亚洲第一成人影院色播| 亚洲精品毛片在线观看| 亚洲精品自拍| 日韩精品在线视频,日韩精品……| 欧美大干日韩| 青青欧洲黑| 亚欧中文字幕在线视频| 麻豆AV一区二区| 国产精品麻豆成人AV艾秋| 免费观看啪视频| 中国一区二区亚洲人妻| 99精品欧美一区二区三区桃色| 国产精品视频内谢女人| 天天做天天爱| 欧美色欧美| 啊啊啊啊啊在线| 欧美日韩欧美| 中国少妇啪啪视频| 四虎影视欧美| se..亚洲欧美| 色色毛片| 少妇厨房愉情理伦片bd在线观看| 国产色产精品在线观看| 国产 日韩,欧美 自拍| 97免费视频在线观看| 九九九九九精品视频| 日本熟妇人妻一区二区三区| 91综合网在线| 亚洲av青草久久一区二区| 神马久久久久久| 秋霞Av理论一级在线| 永久电影三级在线观看| 操操操五月天婷婷丁香影院| 另类小说综合网| 久久精品毛片免费不卡| hd成人一区二区在线| 亚洲色诱惑| 麻豆久久视频在线地址| 国产性感在线观看| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 性色av网站| 伊人色综合网电影| 又黄又爽在线观看视频 | 亚洲?V高清一区二区三区尤物| 国产精品久久久 | 成人性交免费视频| 亚洲一区在线观看欧洲 | 亭亭在线资源| 麻豆精品.欧美精品.日韩精品.| 亚洲国产精品成人久久蜜臀| 中文字幕日韩电影人妻 | 99久久99九九99九九九| 日韩性爱一级片| 91精品久久久久五月天精品| 手机看片1025| 中文字幕在线观看AV| 伊人 俄罗斯 a v| 国产美女高潮视频| 精品国产三级av韩国在线| 99热99在线播放激情| 乱色视频中文字幕| 蜜臀久久99精品久久久久免费观| 一二视频神马久久传媒| 婷婷爽人人婷婷爽视频| 3d成人精品一区二区| 亚洲色五月| 精品久久九| 久久男人天堂| 国产精品久久久鸭无码的功能| 97 亚洲 日韩 欧美 在线| 少妇人妻激情四射| 国产色图乱伦| 日本久久精品| 97AV在线免费观看| 久久久9999| 5278欧美一区二区三区| 97自拍一区| 91岛国动作片| 探花一区在线| 噜噜噜久久亚洲精品色情| 美女9118禁| 日逼国产| 91美女在线视频| 校园春色亚洲| 超碰av在线| 日日干天天干夜夜爽| 91久久久久久久| 死我十八禁| 天天内射| 91久久久亚洲| 男人的天堂啪啪| 日韩干B| 强奸乱伦大香蕉| 人妻天天爽夜夜爽精品2| 干B网| 乱伦系列一区二区| 99re在线精品78| 亚洲另类小说卡通动漫| 亚洲AO在线| 日韩亚洲欧美中文字幕| 久久国产视频性吧| 91熟女网| 九月婷婷| 久久久日本电影| 婷婷丁香五月综合| 久久久亚洲精品中文字幕人妻| 日本性爱少妇| 中文字幕午夜精品久久久| 欧美丰满少妇xx高潮| 操B久久| 蜜乳AV.COM| AV丝袜少妇| 青草草免费网站av| 动漫av中文| 老司机老司机午夜影院| 欧美第二页午夜| 日韩在线观看字幕精品| 亚洲极品| 久久免费精彩视频| 97超碰色色| 丁香五月天婷婷姐| 人人人摸人人| 久久久久大香青草精品综合| 333kkkk·亚洲com久久| 欧美亚洲韩国视频十五区| 国产小u女在线观看| 久久风骚城市| 亚洲 91 在线| 欧美精品23| 欧美天堂亚洲电影院一区在线播放| 美国人人操人人操| 99超碰网| 亚洲精品一二三四区| 青青免费在线视频一区 | 人妻精品一区二区| 中文字幕一区二区三区人妻少妇在线| 欧美日韩在线视频网站| 亚洲第91页| 91黑人无码激情在线| 9丨久久九九九| 99操| 婷婷五月天av| 无遮挡又黄又刺激的视频| 日本精品性生活久久久| 99久久99九九99九九九| 精品国产av一区二区三区四区入口| 日韩av电影成人在线| 人妻天天爽夜夜爽爽| 美女尤物人人操| 睡产熟女乱伦| 综合网亚洲1| 欧美综合第一页| 看黑丝美女操逼青青网站| 国产亚洲精品农村妇女| 夜夜黄| 久热久一区二区三区| 在线免费观看日韩一区| 青青青在线高清视频在线一二三四区| 人妻密肉在线观看| 一起草精品人妻| 一级一性爱免费视频| 日韩久草| 中文字幕精品人妻丝袜| 欧美另类综合久久| 97超碰超| 久久婷婷亚洲欧| 激情五月天丁香| 性暴力欧美猛交在线直播| 久久成人精品| 欧美黑人与女人91~| 在线性黄高清免费视频| 91久久久亚洲| 天天操福利视频综合网站| 不卡人妻少妇精品毛片一区23区视频| 欧美操逼熟女| 亚洲天堂欧美| 91麻豆天美国产欧美高潮| 免费啪啪啪网站18岁| 九九热视频这里只有精品| 丁香五月综合| 精品无码秘 人妻一区二区 | 亚洲文学偷乱拍啪啪啪啪| 激情综合五月丁香| 欧 美 自 拍 偷 拍| 97免费视频在线| 欧美一区二区三区成人性生活| 99丝袜福利在线播放| 日韩精品视频在线观看一卡二卡| 高清有码一区二区| 亚欧洲日韩国产精品| 青青三级视频| 国产久久一区二区三区野外在线| 色99视频| 久久久无码av精| 亚洲无码国产探花在线观看| 亚洲深夜福利| 岛国黄| 国产兽交视频在线播放| 天天欲望网| 亚洲少妇激情一区二区三区| 老汉网| 人人操天天爽| 蜜臀精品1区2区| 亚洲免费精品一区| 国产馆极品诱惑| 久久国产精品91| 丰满少妇一区二区三区专区| 视频二区美腿丝袜制服人妻欧美| 九月丁香婷婷| 国产av尤物| 亚洲影视综合网| 精品91摸| AV高清一区| 日韩中文字幕av在线播放| 情色五月天久久久| 日本超碰97日韩精品人妻| 性性久久| 日日干夜夜骑| 97在线观看视频| 91性网| 东京热毛片177b2viP| 亚洲天堂男人天堂| 91AV入口| 成人八戒网站| 中文字幕在线日亚洲9| 99综合| 超碰调教97| 大香蕉天天看妹子| 综合九九| 亚洲图片91| 日韩免费中文字幕视频| 中国国产精品一区视频| 亚洲精品成人激情在线| 天天看综合网| 粉嫩AV输入| 婷婷丁香人妻| 国语对白露脸XXXXXX| 2021久久国产综合精品青草| 99综合网| 日韩激情视频| 96精品久久久| 一级一性爱免费视频| 思思热国产在线视频| 亚洲成人综合在线| 日韩人妻网站| 午夜福利 成人 91| 久久精品人人做人人看| 一区二区三区机械有限公司| 精品大久久| 日韩二区三四区五区六区在线看| 91精品网站| 国产精品亚洲一级av第二区| 99久热| 97欧美色资源| 亚洲色五月| 国产精品久久久蜜臀| 九九九只有精品| 久9re热视频这里只有精品| 国产一区二区在线电影| 日韩精品高清资源在线| 色婷婷日韩精品一区二区三区| 日韩成人性日韩成人性爱视频在线免费观看 | 久久午夜神马| 欧美丰满少妇xx高潮| 97日本超碰综合| 后入福利| 日韩美女啪啪一区| 裸体美女国产免费久久久网站| av午夜玫瑰| 热热色91| 9999免费精彩视频| silk lablo在线观看一区二区| 国产97亚洲| 国产超碰人人爽人人做| 搞中出视频在线观看| 国产精品操| 亚洲av无码成人精品国产| 国产青青美女玩逼视频| 老熟女乱伦片| 色女女女导航| 乱人乱色一区二区三区免费| 中国一级操逼视频| 伊人青青一区成人视频在线观看区| 99热18这里只有精品| 100啪啪视频大全| 嗯嗯嗯好爽| 青青草综合在线| 岛国黄色大片网站| 91高潮喷水美女| 岛国片在线播放| 欧美色图偷拍另类| 熟女乱3伦999| 久九干| 少妇久久久| 大香蕉碰碰| 亚洲欧美洲综合| 玖玖色综合| 熟人人妻少妇精品久久| 十八禁视频网站| 97精品一区| 中文字幕在线高清男人的天堂| 亚洲色图自拍| 日本色色色视频| 色踪合AV| 久久久久国产精品片区无码直播| 九九九草| 亚欧性爱在线无码| 久久久久成人网| a网站免费观看| 午夜人妻精品综合在线| 男人天堂2019| 91狠狠综合久久久久久| 青春草莓视频在线观看网址| 干B视频伊人网| A一区片| 日日夜夜模| 国产伦乱91| 久热最新在线杭州| 极品白嫩福利在线| 天天视频网站黄| 9精品久久| 9999免费精彩视频| 97亚洲中文| 欧美性,亚州色| 国产成人综合在线播放| 国产中文字幕在线观看| 黑丝少妇| 黑人精品XXX一区一二区| 啊啊啊不要好爽日韩无码一区| 亚洲第一黄色av网站 | 四虎影库国产精品免费| 亚洲在线A| www成人啪啪18秘 免费| 少妇天堂| 好看的91视频| 99热在线观看| 久久天堂| 激情小说亚洲视频| 大香蕉伊人色偷偷在线| 狠狠操官网| 快播久久人人aV| 丝袜制服字幕在线| 26uuu国产成人综合| 大香蕉中文在线| 99抽插| 这里只有精品视频在线| 国内精品a| 91n处女在线观看| 色av中文字幕| 亚洲精品亚洲人成人网| 人妻色偷色噜| 99热这里都是精品| 夜夜爽夜夜爽| 日本污ww视频网站| 97超碰精品成| 91在线精品一区二区三区| 91女人的网站| 日韩人妻免费精品| 欧美在线播放| 国产精品夜夜夜| 日韩精品人妻中文字幕久久久| 十八禁视频网站| 翔田千里AⅤHD无码| 精品少妇99| 任你干在线视频| 日韩久久超碰色| 五月婷婷六月丁香| 51一区二区三区| 久久久性| 少妇熟女一区二区三区| 呦女网站| 欧美日韩国产电影| 我要色综合网| 国产免费一区| 日韩午夜国产| 在现视频女上位好爽| 亚洲AV无码乱码在线观看性色| 成人日韩3| 情趣丝袜无码操逼视频| 久久久久少妇| 少妇激情一区二区三区视频| 四虎精品一区| 伊人久久蜜月| 欧美日动态视频| 密臀在线免费观看| 精品久久久久,69国产成人精| 精品亚洲国产成人AV制服丝袜| 国产精品999zyz| 成人av在线播放| 国产成人超碰在线| 人人爱人人乐人人操| 一区二区三区不卡视频| 蜜臀AV一区二区三区| 视频在线97| 天天日熟妇| 色偷偷超碰亚洲| 99rre在线精品99re8| 人、人、摸,人、人、草| 四虎884| 亚洲少妇自拍中文字幕懂色| 国产亚洲精品第一最新| 久久人人舔人人爽舔人人av片| 日韩在线欧美精品一区二区| 亚洲一级黄色毛片| 国产毛片毛片4p懂色| 放黄片放3级黄片没穿衣服| 搡老女人老91妇女老熟女| 啊啊啊操死我| av黄图片在线观看| 国产成久久综合片| 国产美女自拍AV| 色就色综合| 欧美日韩操逼动图| 欧美性爱伊人| 99热这里只有精品9| 九九色综合| 日本熟妇熟色97一本在线观看| WWW4虎| 亚洲黄日韩无码专区| 欧美中字二区| 五十路人妻在线| 5252色欧美在线男人的天堂| 欧美色九九| 九九九九热| 欧洲亚洲国产综合在线| 亚洲色图日韩精品| 亚洲成人免费电影| 99久久com免费视频′| 日韩情色AV| 亚洲精品蜜桃久久久| 欧美性暴力| 国产对白刺激视频| 亚欧性爱在线无码| 99热超碰| 国产一区二区久久| 99热这里都是精品| CCYY草草影院地址入口| 97欧美性爱| 裸体美女免费看网站青草| 97硬碰| 成人夜夜| 综合影院永久入口国产| 欧美视频一区二区在线| 97色伦欧美| 噜噜噜久久亚洲精品色情| 少妇高潮九九九九九九九| 国产精品女aA片爽爽视频| 久干9操| 九九天堂| 国产久久久久影院老熟女| 91精品人妻一区二区三区蜜桃| 51国产午夜精品视频| av天堂手机版追回| 免费看污网站| 久久大香蕉97| 高潮毛片无遮挡高清免费| 婷婷五月天色色| 熟女网站最新| 日本不卡五区| 国产AV超爽| 久久视网78| JuliaAnn丝袜熟女系列| 高清无码 国产精品| 天综合中文| 9久9久9久9久视频网站| 高清一区AV无码| 天天干一区二区| 日韩欧美久久婷婷网站| 亚洲成人在线高清| 欧美日韩国产传媒在线精品| 91在线丝袜| jk白丝没脱就开始啪啪| 国产精品2020| 欧美天天干| 综合一区中亚洲国产成人综合精品 | 色情乱伦AV| 自拍二页| 色呦呦国产精品免费看| 人妻熟女午夜精品在线| 国产av色网| 国产白嫩漂亮KTV在线| 欧美色图天堂网m| 午夜毛片亚洲精品片国产久久久| 欧美黄色大香蕉一区二区| 九九九九九九九九九五码| 2023天天操夜夜操| 天天综合色电影| 99久草| 亚洲精品99| 日天天九九天堂666| 粉嫩绯色AV一区二区在线| 96久久久精品| 成人八戒网站| 超碰无码五月97| 日韩亚洲中文字幕在线| 91精品国久久久久久无码| 欧美伊人久久综合网| 国产福利夜| 久久亚洲中文字幕视频| 亚洲少妇诱惑| 国产 亚洲 一二三四| 久久熟妇五十路一区| 亚洲欧美日韩制服另类| 91暧暧| 操B视频日韩无码| 诱惑人妻欧美一区在线播放| 中文字幕高清精品一区| 99热导航| 另类小说综合网| 日日噜噜夜夜久久亚洲一区二区 | 国产亚洲精品农村妇女| 91丝袜美腿片| 岛国艾薇凹凸视频天堂| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 黑人精品XXX一区一二区| 91色综合激情| 国产精品ⅴ无码大片在线看.| 久久999久| 能在线播放的国产三级| 亚洲青青草| 探花激情视频| 精品人妻av区天天看片| 按摩中文字幕| 超碰国产精品久| 亚洲骚男同com| 成人在线日韩| 午夜性刺激视频免费观看| 亚洲瓯美色图| 精品国产丝袜一区二区三区乱码| 天天影视之亚洲综合网| 激情综合久久| 蜜臀无码视频在线观看| 精品人妻一区二区乱码一区二区| 伦伦成年午夜免费视频| 秘书高跟黑色丝袜国产91在线| 日韩有码一区三区| 国产美女自拍AV| 亚洲玖玖爱| 天天91~综合入口| 亚洲一区操| 性色高清..……| 懂色综合久久久| 中文字幕人成乱码熟女香港| 国产精品第一页国产大屁股视频免费区i| 91干熟女| 中文字幕人妻资源在线| 欧美青青草视频| 亚洲不卡AV在线| 亚洲国产婷婷在线播放| 9Ⅰ超碰| 91久久国产综合精品| 丁香五月久久| WWW操逼| 欧美性性性| 久草男人天堂| 天天日天天舔天天喷天天射| 黄色大片免费在线| 91成人精品| 日本高清熟女久久一区| 久久女婷| 操操操日本的逼| 中文字幕三四区| 欧美,亚洲,日韩,v,天堂,手机在线观看| 日曰骚久久精品| 国产一区麻豆免费观看| 十八禁视频网站| wwwxxx日本爽| 校园春色 欧美| 91亚.色| 久久久中文版| 人妻天天夜夜爽一区二区| 日人妻视频91| 日韩免费高清大片在线| 欧美激情在线观看视频| 老熟妇一区二区三区啪啪| 素人美腿视频网站| 精品久热| 成人性爱高清视频免费看| 91人妻最真实刺激绿帽| 天天综合网91| 少妇精品| 夜夜骑日日| 日本九九久久99| 久久国产精品,久久国产| 蜜臀少妇一区二区| 亚洲女毛多水多21P| 萌白酱自拍视频| 台湾一区国产高清在线| 亚洲天天操| 精品1区2区3区| 伊人网在线点播| 亚洲综合草草| 亚洲极品| 日韩精品一区,二区 九九...老司机| 亚洲网自拍| 人人爱夜夜爱| 毛片视频白嫩| 99热色这里只有精品| 亚洲综合 欧美| 午夜成人福利影视| 国产成人bd在线观看| 天天艹天天日| 免费一级性爱久久| 久久超碰com| 亚洲精品a人片在线观看视| 亚洲 自拍偷拍 欧美| 天天插夜夜操| 在线综合 亚洲 欧美中文字幕 | 久久性视频| 午夜天堂啪啪| www99热| 九九成人视频| 黑操B| 亚洲欧美九九九| 91伊人影视综合| www.99热在线只有精品| 伊人国产视频| 91影视亚洲| 色欧美色交综合| 超碰人人干天天射| 999久久久九九九九| 91亚洲色图| 看免费的黄片| 欧美另类精品xxxx|