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

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

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

vue3使用VueQuill插入自定義按鈕

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

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

Quill官方中文文檔

1. 項目設置和依賴安裝

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

npm init vue@latest

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

安裝 VueQuill

npm install @vueup/vue-quill

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

2. 基礎配置 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] }], // 標題
            [{ 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)建了一個基礎的 VueQuillEditor 組件,我們可以在其中輸入和編輯文本。

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

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

  • 新建 CustomSpanBlot.ts 文件

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

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>

總結

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

相關文章

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

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

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

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

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

    vue時間戳和時間的相互轉換方式

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

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

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

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

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

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

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

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

    這篇文章主要介紹了Vue?收集表單數(shù)據(jù)方法詳情,文章圍繞主題展開詳細的內(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篩選時間日期選擇范圍,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2024-12-12
  • Vuex的熱更替如何實現(xiàn)

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

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

最新評論

霍城县| 肥东县| 清流县| 连云港市| 屏东县| 宁武县| 杨浦区| 常山县| 黑山县| 伊春市| 锦州市| 兴隆县| 达日县| 泾川县| 桂林市| 三门县| 廊坊市| 盐津县| 汝州市| 康保县| 黄龙县| 济源市| 肥东县| 湟中县| 高台县| 井冈山市| 新巴尔虎右旗| 宁夏| 顺平县| 筠连县| 屯留县| 花垣县| 肃北| 宁陵县| 阜平县| 嘉鱼县| 武威市| 怀仁县| 偃师市| 洛川县| 肇州县|