Maison > interface Web > Voir.js > Comment utiliser Vue pour implémenter un éditeur de texte enrichi léger ?

Comment utiliser Vue pour implémenter un éditeur de texte enrichi léger ?

WBOY
Libérer: 2023-06-25 19:13:35
original
4099 Les gens l'ont consulté

Avec le développement continu de la technologie front-end, de plus en plus de projets doivent implémenter des éditeurs de texte enrichi, et les éditeurs de texte enrichi légers sont devenus la priorité de nombreux développeurs. En tant que l'un des frameworks front-end les plus populaires à l'heure actuelle, Vue est flexible et facile à utiliser, il est donc très approprié pour implémenter un éditeur de texte riche léger. Cet article explique comment utiliser Vue pour implémenter un éditeur de texte enrichi léger.

  1. Installez et présentez la bibliothèque de l'éditeur de texte enrichi

Le framework Vue lui-même n'a pas la fonction d'un éditeur de texte enrichi et une bibliothèque tierce doit être introduite. Les bibliothèques courantes d'éditeurs de texte enrichi incluent Quill, TinyMCE, CKEditor, etc. Cet article prend Quill comme exemple. Quill est un éditeur de texte riche moderne et open source, facile à étendre et fournissant de nombreux thèmes et plug-ins personnalisables.

La méthode pour installer Quill est très simple, il suffit d'utiliser directement la commande npm :

npm install quill
Copier après la connexion

Pour introduire Quill dans Vue, vous devez utiliser la méthode import et introduire Quill dans le script du composant :

import Quill from 'quill'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
Copier après la connexion

Parmi eux, quill.core.css< /code> doit être introduit. <code>quill.snow.css et quill.bubble.css sont les deux thèmes fournis avec Quill. neige</code code>. <code>quill.core.css 是必须引入的,quill.snow.cssquill.bubble.css 是 Quill 自带的两个主题,默认是 snow

  1. 创建富文本编辑器组件

在 Vue 中,一个组件即是一个独立的界面部件,为了便于后续使用和维护,我们需要将富文本编辑器封装成一个组件。在创建组件之前,我们需要先了解 Quill 的使用方法。

Quill 的基本使用方式非常简单,只需要在 HTML 中创建一个空的 div 元素,然后在 JavaScript 中将其实例化即可。在 Vue 中实现刚才所述的操作,可以在 mounted() 生命周期中执行,如下所示:

<template>
  <div ref="editor"></div>
</template>

<script>
  export default {
    name: 'RichTextEditor',
    mounted () {
      this.quill = new Quill(this.$refs.editor, {
        modules: { /* 配置 Quill 的 options 和 modules */ },
        theme: 'snow' /* 选择一个主题 */
      })
    },
    methods: {
      // 导出 HTML 或纯文本格式化后的内容
      getContent () {
        return this.quill.root.innerHTML.trim()
      }
    }
  }
</script>

<style lang="scss" scoped>
  /* 在样式中设置组件宽度和高度 */
  .ql-container {
    width: 300px;
    height: 200px;
  }
  .ql-editor {
    height: 150px;
  }
</style>
Copier après la connexion

在上述代码中,我们先在 template 中创建一个空的 div,然后在 mounted() 生命周期中使用 Quill 对象来实例化富文本编辑器。可以看到,在实例化富文本编辑器时,我们使用了 Quill 对象的 options 和 modules 配置项,同时也指定了主题,这些都可以在 Quill 官方文档找到。

最后,我们使用 getContent() 方法来获取编辑器中的内容,这是一个封装好的方法,可以根据具体需求添加其他格式化方法。

  1. 配置富文本编辑器

为了实现更好的用户体验,我们需要在 Quill 的配置中添加一些常用的工具栏、格式化和语言支持等功能。Quill 的配置非常丰富,下面是一些示例:

this.quill = new Quill(this.$refs.editor, {
  modules: {
    toolbar: [
      [{ header: [1, 2, false] }],
      ['bold', 'italic', 'underline', 'strike'],
      ['blockquote', 'code-block'],
      [{ list: 'ordered' }, { list: 'bullet' }],
      [{ script: 'sub' }, { script: 'super' }],
      [{ indent: '-1' }, { indent: '+1' }],
      [{ direction: 'rtl' }],
      [{ color: [] }, { background: [] }],
      [{ font: [] }],
      [{ align: [] }],
      ['clean']
    ],
    syntax: {
      highlight: text => hljs.highlightAuto(text).value
    },
    history: {
      delay: 1000,
      maxStack: 50,
      userOnly: true
    }
  },
  theme: 'snow',
  placeholder: '请输入内容 ...',
  readOnly: false,
  scrollingContainer: '.ql-editor',
  language: 'zh-CN'
})
Copier après la connexion

上述代码中,我们通过更改 modules 属性,来选择需要使用的模块。Toolbar 模块提供可自定义的工具栏,可以在其中添加一些常用的按钮,例如段落、Bold、Italic、Underline、Strike、列表、引用、Code、Font、Align 等等。

此外,Quill 还支持 Syntax 插件和 History 插件。Syntax 插件可以在编辑器中实现代码的高亮显示,而 History 插件可以记录并提供撤销和恢复操作。

options 中,我们可以设置 placeholder 属性和 readOnly 属性,其中 placeholder 属性显示在编辑器中的空白区域,提供编辑的提示文字;readOnly 属性则控制了编辑器是否可以被编辑。

language 属性中,我们可以设置语言,这里我们选择了中文。

  1. 使用富文本编辑器组件

在 Vue 应用程序中使用该组件非常简单:

<template>
  <RichTextEditor ref="editor" />
</template>

<script>
  import RichTextEditor from '@/components/RichTextEditor.vue'

  export default {
    components: {
      RichTextEditor
    },
    methods: {
      // 获取富文本编辑器中的内容
      getContent () {
        console.log(this.$refs.editor.getContent())
      }
    }
  }
</script>
Copier après la connexion

在上述代码中,我们只需将组件作为一个标签进行使用,然后使用 $refs 来获取组件实例,通过 getContent()

    Créer un composant d'éditeur de texte enrichi

    🎜Dans Vue, un composant est un composant d'interface indépendant Afin de faciliter l'utilisation et la maintenance ultérieures, nous devons encapsuler l'éditeur de texte enrichi dans un composant. . Avant de créer des composants, nous devons comprendre comment utiliser Quill. 🎜🎜L'utilisation de base de Quill est très simple, il suffit de créer un élément div vide en HTML et de l'instancier en JavaScript. Pour implémenter l'opération qui vient d'être décrite dans Vue, elle peut être exécutée dans le cycle de vie Mounted(), comme indiqué ci-dessous : 🎜rrreee🎜Dans le code ci-dessus, nous créons d'abord un div vide dans le modèle, Utilisez ensuite l'objet Quill dans le cycle de vie Mounted() pour instancier l'éditeur de texte enrichi. Comme vous pouvez le voir, lors de l'instanciation de l'éditeur de texte enrichi, nous utilisons les éléments de configuration des options et des modules de l'objet Quill, et spécifions également le thème. Ceux-ci peuvent être trouvés dans la documentation officielle de Quill. 🎜🎜Enfin, nous utilisons la méthode getContent() pour obtenir le contenu dans l'éditeur. Il s'agit d'une méthode encapsulée et d'autres méthodes de formatage peuvent être ajoutées en fonction des besoins spécifiques. 🎜
      🎜Configurer l'éditeur de texte enrichi🎜🎜🎜Afin d'obtenir une meilleure expérience utilisateur, nous devons ajouter des barres d'outils communes, un formatage, une prise en charge linguistique et d'autres fonctions à la configuration de Quill. La configuration de Quill est très riche, voici quelques exemples : 🎜rrreee🎜Dans le code ci-dessus, nous sélectionnons les modules que nous devons utiliser en modifiant l'attribut modules. Le module Barre d'outils fournit une barre d'outils personnalisable dans laquelle vous pouvez ajouter certains boutons couramment utilisés, tels que Paragraphe, Gras, Italique, Souligné, Barré, Liste, Citation, Code, Police, Aligner, etc. 🎜🎜De plus, Quill prend également en charge le plug-in Syntaxe et le plug-in History. Le plug-in Syntaxe permet la mise en évidence du code dans l'éditeur, tandis que le plug-in History enregistre et propose des opérations d'annulation et de rétablissement. 🎜🎜Dans options, nous pouvons définir l'attribut placeholder et l'attribut readOnly. L'attribut placeholder est affiché dans la zone vide de l'éditeur et fournit le texte d'invite d'édition qui contrôle si l'éditeur peut ; être modifié. 🎜🎜Dans l'attribut langue, nous pouvons définir la langue, ici nous avons choisi le chinois. 🎜
        🎜Utiliser le composant Rich Text Editor🎜🎜🎜Utiliser ce composant dans une application Vue est très simple : 🎜rrreee🎜Dans le code ci-dessus, nous utilisons simplement le composant comme étiquette, puis utilisons $refs pour obtenir l'instance du composant et utilisez la méthode getContent() pour obtenir le contenu dans l'éditeur de texte enrichi. 🎜🎜En résumé, grâce à cet article, vous pouvez facilement maîtriser la méthode d'implémentation d'un éditeur de texte riche léger dans Vue. Grâce à la bibliothèque Vue + Quill, vous pouvez créer rapidement et facilement un puissant éditeur de texte riche. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal