最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3如何使用VueQuill插入自定義按鈕

 更新時間:2024年11月21日 09:38:31   作者:胡八一、  
在Vue3項目中使用VueQuill編輯器,通過自定義Blot元素,可以插入特定的標(biāo)簽或樣式元素,滿足項目需求

vue3使用VueQuill插入自定義按鈕

在 Vue 3 項目中使用 VueQuill 編輯器時,我們可以自定義內(nèi)容來滿足特定的需求。

本文將介紹如何在 VueQuill 中插入自定義內(nèi)容,比如插入特定的標(biāo)簽或樣式元素。

Quill官方中文文檔

1. 項目設(shè)置和依賴安裝

如果你還沒有創(chuàng)建 Vue 3 項目,可以使用以下命令來初始化項目:

npm init vue@latest

選擇 Vue 3 的相關(guān)配置,然后進入項目目錄并安裝依賴項。

安裝 VueQuill

npm install @vueup/vue-quill

此庫是 Quill 編輯器的 Vue 3 兼容版本。

2. 基礎(chǔ)配置 VueQuill

src/components 中創(chuàng)建一個 QuillEditor.vue 文件,并引入 vue3-quill,將 VueQuillEditor 作為編輯器組件使用。

  • template 內(nèi)容
<template>
  <div class="editor">
    <quill-editor ref="quillEditorRef" v-model:content="content" content-type="html" :options="options" :style="styles" @text-change="textChangeFn" />
  </div>
</template>
  • options 內(nèi)容:
import '@vueup/vue-quill/dist/vue-quill.snow.css';

import { Quill } from '@vueup/vue-quill';
const options = ref<any>({
  theme: 'snow',
  bounds: document.body,
  debug: 'warn',
  modules: {
    // 工具欄配置
    toolbar: {
      container: [
            ['bold', 'italic', 'underline', 'strike'], // 加粗 斜體 下劃線 刪除線
            ['blockquote', 'code-block'], // 引用  代碼塊
            [{ list: 'ordered' }, { list: 'bullet' }], // 有序、無序列表
            [{ indent: '-1' }, { indent: '+1' }], // 縮進
            [{ size: ['small', false, 'large', 'huge'] }], // 字體大小
            [{ header: [1, 2, 3, 4, 5, 6, false] }], // 標(biāo)題
            [{ color: [] }, { background: [] }], // 字體顏色、字體背景顏色
            [{ align: [] }], // 對齊方式
            ['clean'], // 清除文本格式
            ['link', 'image', 'video'], // 鏈接、圖片、視頻
            ['newFunction'] // 新添加的按鈕
          ],
      handlers: {
        newFunction: (value: boolean) => {
          // 添加處理方法
          const quill = quillEditorRef.value.getQuill();
          // 插入自定義按鈕
           quill.insertEmbed(0, 'customSpan', 'test');
        }
      }
    }
  },
  placeholder: props.readOnly ? '' : '請輸入內(nèi)容',
  readOnly:false
});

以上代碼創(chuàng)建了一個基礎(chǔ)的 VueQuillEditor 組件,我們可以在其中輸入和編輯文本。

3. 自定義內(nèi)容的插入

接下來,我們會在 Quill 編輯器中插入自定義內(nèi)容,比如一個帶特定樣式的 span 標(biāo)簽。為此,我們需要創(chuàng)建一個 Quill 的自定義 Blot 元素。

  • 新建 CustomSpanBlot.ts 文件

src/quill-blots 文件夾下新建 CustomSpanBlot.ts 文件,用于定義我們自定義的 span 標(biāo)簽格式:

import { Quill } from '@vueup/vue-quill';

const Inline = Quill.import("blots/inline");

class CustomSpanBlot extends Inline {
  static blotName = "customSpan";
  static tagName = "span";
  static className = "custom-span";

  static create(value: string) {
    const node = super.create();
    node.setAttribute("data-custom", value);
    node.innerHTML = value;
    return node;
  }

  static formats(node: HTMLElement) {
    return node.getAttribute("data-custom");
  }

  format(name: string, value: string) {
    if (name === CustomSpanBlot.blotName && value) {
      this.domNode.setAttribute("data-custom", value);
      this.domNode.innerHTML = value;
    } else {
      super.format(name, value);
    }
  }
}
export { CustomSpanBlot };

4. 插入內(nèi)容到編輯器

QuillEditor.vue 中引入自定義的 CustomSpanBlot,并編寫插入自定義內(nèi)容的方法:

<script lang="ts">
import { CustomSpanBlot } from './CustomSpanBlot';
// 進行注冊
Quill.register(CustomSpanBlot);
// 初始化
onMounted(() => {
  // 新增自定義功能
    const newFunctionButton = document.querySelector('.ql-newFunction');
    newFunctionButton.setAttribute('style', 'width:80px; border:1px solid #ccc; border-radius:5px');
    newFunctionButton.textContent = '新功能';
});
</script>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中el-table樹狀表格末行合計實現(xiàn)

    vue中el-table樹狀表格末行合計實現(xiàn)

    本文主要介紹了vue中el-table樹狀表格末行合計實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • Vue 中的受控與非受控組件的實現(xiàn)

    Vue 中的受控與非受控組件的實現(xiàn)

    這篇文章主要介紹了Vue 中的受控與非受控組件的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue時間戳和時間的相互轉(zhuǎn)換方式

    vue時間戳和時間的相互轉(zhuǎn)換方式

    本文通過示例代碼介紹了vue時間戳和時間的相互轉(zhuǎn)換方式,通過場景分析介紹了vue3使用組合式api將時間戳格式轉(zhuǎn)換成時間格式(2023年09月28日 10:00),感興趣的朋友一起看看吧
    2023-12-12
  • Vue基于el-breadcrumb實現(xiàn)面包屑功能(操作代碼)

    Vue基于el-breadcrumb實現(xiàn)面包屑功能(操作代碼)

    這篇文章主要介紹了Vue基于el-breadcrumb實現(xiàn)面包屑功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 解決echarts中橫坐標(biāo)值顯示不全(自動隱藏)問題

    解決echarts中橫坐標(biāo)值顯示不全(自動隱藏)問題

    這篇文章主要介紹了解決echarts中橫坐標(biāo)值顯示不全(自動隱藏)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue業(yè)務(wù)組件封裝Table表格示例詳解

    Vue業(yè)務(wù)組件封裝Table表格示例詳解

    這篇文章主要為大家介紹了Vue業(yè)務(wù)組件封裝Table表格示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Vue?收集表單數(shù)據(jù)方法詳情

    Vue?收集表單數(shù)據(jù)方法詳情

    這篇文章主要介紹了Vue?收集表單數(shù)據(jù)方法詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Vue-Luckysheet的使用方法及遇到問題解決方法

    Vue-Luckysheet的使用方法及遇到問題解決方法

    Luckysheet ,一款純前端類似excel的在線表格,功能強大、配置簡單、完全開源,這篇文章主要介紹了Vue-Luckysheet的使用方法,需要的朋友可以參考下
    2022-08-08
  • el-date-picker如何篩選時間日期選擇范圍

    el-date-picker如何篩選時間日期選擇范圍

    這篇文章主要介紹了el-date-picker篩選時間日期選擇范圍,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2024-12-12
  • Vuex的熱更替如何實現(xiàn)

    Vuex的熱更替如何實現(xiàn)

    這篇文章主要介紹了Vuex的熱更替如何實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評論

丰城市| 崇仁县| 盐池县| 离岛区| 临清市| 新丰县| 清远市| 大悟县| 海阳市| 郴州市| 沙洋县| 抚远县| 顺昌县| 镇江市| 宝山区| 手游| 邹平县| 纳雍县| 石渠县| 榆中县| 仁布县| 上思县| 湖南省| 新平| 雷波县| 阿拉善右旗| 达日县| 贵定县| 方城县| 法库县| 武冈市| 离岛区| 新沂市| 宜章县| 加查县| 岳西县| 白银市| 竹山县| 云阳县| 会昌县| 远安县|