已实现:关于富文本组件库vue2-editor的使用方法以及一些必要的注意事项,特别是设置完富文本以后的回显问题。以及在光标位置插入字符串等

news2024/11/18 7:47:48

前言

目前常见的基于vue的富文本编辑器有两个:“vue2-editor” 和 “vue-quill-editor”
都是用于Vue.js的富文本编辑器组件,它们具有一些共同的特点,但也有一些区别。

共同点:

1、富文本编辑功能: 两者都提供了富文本编辑功能,允许用户创建、编辑和格式化文本内容,包括加粗、斜体、链接、列表等功能,js还支持了光标位置获取以及在指定位置插入字符串功能。

2、支持Vue.js: “vue2-editor” 和 “vue-quill-editor” 都是为Vue.js框架设计的组件,可以轻松与Vue项目集成。

3、可自定义配置: 你可以根据自己的需求配置和自定义这两个编辑器的外观和功能,包括设置工具栏、上传图片、自定义样式等。

区别:

1、底层编辑器引擎不同: 最大的区别在于它们使用不同的底层编辑器引擎。 “vue2-editor” 使用了基于slate的编辑器引擎,而 “vue-quill-editor” 使用了Quill编辑器引擎。这意味着它们在底层实现和支持的功能上有所不同。

2、体积和性能: “vue2-editor” 更轻量,因为它使用了较小的编辑器引擎。这可能使它在性能方面更具优势,尤其是对于需要快速加载的应用。

3、生态系统和插件: “vue-quill-editor” 有一个较大的生态系统,有很多社区插件和主题可供选择。Quill编辑器引擎也有广泛的文档和支持。“vue2-editor” 也有一些插件和主题,但它的生态系统相对较小。

但是不友好的是,这两个库都是外国人整的,并没有系统的中文文档,网络提供的博客也是稀缺。

场景

我大致讲讲这个组件的使用场景:往往是在管理后台使用组件来编辑富文本,然后在回显到页面上供用户观看(现在手机端居多),所以就涉及两部分内容,就以管理后台和手机端h5为例,使用vue2-editor做讲解。

一、管理后台的编辑保存使用

安装就大致提一句吧,应该知道名字就都会安装了吧:

cnpm install vue2-editor

这是组件使用

<VueEditor
           ref="xiangxiagnganyuGuide"
           :editorOptions="editorOption"
           v-model="detail.questionList.question1.yixiangGuideWord"
           useCustomImageHandler
           style="width: 99%;"
       ></VueEditor>

这是配置组件的一些工具能力,注释掉的部分也可以打开,包括列表、文件上传等功能都可以实现。

export let editorOption= {
    modules:{
        toolbar: [
            ['bold', 'italic', 'underline', 'strike'], //加粗,斜体,下划线,删除线
            // ['blockquote', 'code-block'], //引用,代码块
            // [{'header': 1}, {'header': 2}], // 标题,键值对的形式;1、2表示字体大小
            // [{'list': 'ordered'}, {'list': 'bullet'}], //列表
            // [{'script': 'sub'}, {'script': 'super'}], // 上下标
            // [{'indent': '-1'}, {'indent': '+1'}], // 缩进
            // [{'direction': 'rtl'}], // 文本方向
            [{'size': ['small', false, 'large', 'huge']}], // 字体大小
            // [{'header': [1, 2, 3, 4, 5, 6, false]}], //几级标题
            [{'color': []}, {'background': []}], // 字体颜色,字体背景颜色
            // [{'font': []}], //字体
            [{'align': []}], //对齐方式
            ['clean'], //清除字体样式
            // ['image', 'video'] //上传图片、上传视频
        ]
    },
    placeholder: "输入内容..."
} //编辑器配置项

然后下图就是编辑的页面展示了:
vue2-editor

二、手机端的回显展示富文本

管理后台这里就差不多了,然后就是手机端怎么解析样式,自然不用多说,肯定使用v-html属性来展示,但是这里有一个注意事项:

1、手机端(也就是展示给用户的回显端)也需要安装这个组件,就是为了引用他的样式,不然手机端是无法完美展示他的样式的
cnpm install vue2-editor
2、在main.js中全局引入样式,引入以后,所有的vue组件就可以匹配富文本中带的class样式名了
import 'quill/dist/quill.core.css' // import styles
import 'quill/dist/quill.snow.css' // for snow theme
import 'quill/dist/quill.bubble.css' // for bubble theme
3、(重要)在展示端展示富文本,这里我写的外层div必须要有,而且必须引用class="ql-editor"这样内部的样式才会生效,这一步非常重要
<div class="ql-editor">
    <p v-html="content"></p>
</div>

如下图:展示的详情
在这里插入图片描述
以上就是使用加回显富文本的基本内容了。

额外学习

当然插件还提供了更高级的用法,
1、比如上传图片,你只需要开启上面提到的配置参数中的图片上传功能,然后在组件中启用@image-added=“handleImageAdded”,

<VueEditor
        v-model="currentRow.introduction"
        useCustomImageHandler
        @image-added="handleImageAdded"
        style="width: 540px; min-height: 200px"
></VueEditor>

这个是handleImageAdded方法,里面的uploadImg就是自己的上传方法了,这个方法自定义:

async handleImageAdded(file, Editor, cursorLocation, resetUploader) {
            try {
                const res = await uploadImg(this, file);
                if (res.code == 200) {
                    Editor.insertEmbed(cursorLocation, "image", res.data);
                    resetUploader();
                } else {
                    this.$Message.error(res.msg);
                }
            } catch (e) {
                console.log(e);
            }
        },

2、(牛批)在光标位置插入指定字符串:还有很多自带的方法,作为普通输入框用也有比input多很多的优势,比如假设你想在光标位置插入指定内容,你使用input可能需要使用js对数据进行复杂的处理,但是vue2-editor他就自带了方法insertText,再配合他便捷的获取光标索引位置的方法,很容易进行插入操作。

<VueEditor
    ref="xiangxiagnganyuGuide"
    :editorOptions="editorOption"
    v-model="detail.questionList.question1.yixiangGuideWord"
    useCustomImageHandler
    style="width: 99%;"
></VueEditor>
><Button @click="insertTextAtCursor(1,'[NAME]')">日程名称</Button>
insertTextAtCursor(type,content) {
	let quill = null
	 if (type === 1){
	     quill = this.$refs.xiangxiagnganyuGuide.quill
	 }
	 const cursorPosition = quill.getSelection().index; // 获取光标位置
	 const newText = content;
	
	 // 在光标位置插入文本
	 quill.insertText(cursorPosition, newText, 'user');
	
	 // 如果需要,更新Vue的绑定数据
	 this.content = quill.root.innerHTML;
},

结语:

组件很强大,同时也可以作为一个强大的普通文本框使用(隐藏掉工具栏),可以使用里面的插入方法,简直不要太爽。主要是使用找资料太难了,所以我来自己整理一下,下次使用的时候直接看自己的记录,不然下次忘了又得找半天资料。

感谢大家的阅览和关注,下一期再见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1047086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据中台建设系列之一】数据中台-元数据管理

本编文章主要介绍数据中台核心模块—元数据模块的一些建设经验分享&#xff0c;供大家一起交流学习。 一、什么是元数据 ​ 元数据可以简单理解为是数据的"数据"&#xff0c;它描述了数据的特征&#xff0c;属性&#xff0c;来源和其他一些数据的基本信息&#xff0…

手机上记录的备忘录内容怎么分享到电脑上查看?

手机已经成为了我们生活中不可或缺的一部分&#xff0c;我们用它来处理琐碎事务&#xff0c;记录生活点滴&#xff0c;手机备忘录就是我们常用的工具之一。但随着工作的需要&#xff0c;我们往往会遇到一个问题&#xff1a;手机上记录的备忘录内容&#xff0c;如何方便地分享到…

基于微信小程序的停车场预约收费小程序设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

数字文创产权版权登记保护多少重要

数字文创产权版权登记保护多少重要 在如今数字化时代&#xff0c;创作者们的作品往往以数字形式存储和传播&#xff0c;这给他们带来了无限的机遇&#xff0c;同时也伴随着一些挑战。在这个环境下&#xff0c;数字文创产权的版权登记显得尤为重要。它不仅能够保护创作者的利益&…

冲刺十五届蓝桥杯P0001阶乘求和

文章目录 题目描述思路分析代码解析 题目描述 思路分析 阶乘是蓝桥杯中常考的知识。 首先我们需要知道 int 和long的最大值是多少。 我们可以知道19的阶乘就已经超过了long的最大值&#xff0c;所以让我们直接计算202320232023&#xff01;的阶乘是不现实的。 所以我们需要…

【逆向】在程序空白区添加Shellcode

目录 硬编码 内存对齐和文件对齐 节表 实战 滴水逆向03-17 #include <windows.h>LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) …

Springboot和Vue:六、ORM介绍+MybatisPlus快速上手

ORM和Mybatis(Plus)介绍 ORM&#xff08;Object Relational Mapping 对象关系映射&#xff09;即映射程序中的对象和数据库中的数据。 MyBatis是一款优秀的数据持久层ORM框架&#xff0c;能够非常灵活地实现动态SQL&#xff0c;可以使用XML或注解来配置和映射原生信息&#xf…

联想笔记本重装系统Win10步骤和详细教程

我们给笔记本电脑重装系统可以解决运行缓慢、出现错误提示等问题&#xff0c;恢复笔记本电脑的流畅运行状态。但是&#xff0c;很多使用联想笔记本电脑的用户不知道重装系统Win10的具体步骤&#xff0c;下面小编给大家介绍关于重装联想笔记本电脑Win10系统的方法步骤吧。 推荐下…

JAMA子刊:最新研究发现腰臀比更能预测死亡

肥胖会危害健康已经称为一个共识&#xff0c;评价肥胖的指标也有多种&#xff0c;例如体质指数&#xff08;BMI)、腰围等。比如BMI大于24为超重&#xff0c;大于28为肥胖&#xff1b;男性腰围≥90cm&#xff0c;女性腰围≥85cm为中心性肥胖。 这些肥胖界值的确定&#xff0c;主…

自制网页。

文章目录 注:代码中图片等素材均来自网络,侵删 20230920_213831 index.html <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-…

Java应用生产Full GC或者OOM问题如何定位

1 引言 生产应用服务频繁Full GC却无法释放内存&#xff0c;甚至可能OOM&#xff0c;这种情况很有可能是内存泄露或者堆内存分配不足&#xff0c;此时需要dump堆信息来定位问题&#xff0c;查看是哪些地方内存泄漏。 Dump文件也称为内存转储文件或内存快照文件&#xff0c;是…

uni-app:canvas绘制图形3

效果 代码 <template><view><!-- 创建了一个宽度为300像素&#xff0c;高度为200像素的canvas元素。canvas-id属性被设置为"firstCanvas"&#xff0c;可以用来在JavaScript中获取该canvas元素的上下文对象。 --><canvas style"width:200…

mysql面试题3:谈谈你知道的MySQL索引?MySQL中一个表可以创建多少个列索引?MySQL索引有哪几种?他们的优缺点是什么?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:谈谈你知道的MySQL索引? MySQL索引是一种特殊的数据结构,用于加速数据库的查询操作。它通过存储列值和对应记录的指针,可以快速定位到满足查询…

计算机竞赛 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

计算机网络-网络层总结

目录 网络层提供的两种服务 1、分组转发和路由选择 2、网络层提供的两种服务 网际协议IP 1、虚拟互联网 2、网际协议IP 3、异构网络互连 4、IPv4地址 概述 4.1分类编址的IPv4地址 4.2划分子网的IPv4地址 4.3无分类编址的IPv4地址 4.4IPv4地址的应用规划 4.5MAC地址…

使用 Spring Data Redis 访问 Redis 的 Spring Boot 应用

使用 Spring Data Redis 访问 Redis 的 Spring Boot 应用 Redis是一个高性能的内存键值存储数据库&#xff0c;常用于缓存、会话管理和消息队列等场景。Spring Boot通过Spring Data Redis提供了方便的方式来与Redis进行交互。在本文中&#xff0c;我们将详细介绍如何使用Sprin…

nodejs+vue 经典建筑网站elementui

第1章 项目概述 1 1.1 问题描述 1 1.2 项目目标 1 1.3 项目适用范围 2 1.4 项目应遵守的规范与标准 2 1.5 涉众 2 具有功能强大、支持跨平台、运行速度快、安全性高、成本低等优点。而对于后者我们使用 来完成它&#xff0c;使其网页功能完备&#xff0c;界面友好、易开发、易…

直方图投影法判断裂缝走势(裂缝类型)

裂缝类型 裂缝类型有很多种&#xff0c;这里我们仅仅判断线性裂缝与网状裂缝&#xff0c;线性裂缝按照其走势有可分为横向裂缝、纵向裂缝和斜向裂缝。 我觉得大家应当有这样的意识&#xff0c;面对网状裂缝&#xff0c;它的二维参数是否有意义&#xff1f;答案是没有&#xf…

宝塔Node部署nuxt3

宝塔Node部署nuxt3 1、首先本地执行打包 yarn build2、然后把目录中的这个文件压缩成zip 3、在宝塔文件处添加一个网站的文件目录&#xff0c;并把文件解压到里面 4、点击左侧的网站&#xff0c;然后选择node项目&#xff0c;选择node版本安装 5、安装完后&#xff0c;点击新…

【C语言】快速排序

文章目录 一、hoare版本二、挖坑法三、前后指针法四、非递归快排五、快速排序优化1、三数取中选key值2、小区间优化 六、代码测试 一、hoare版本 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法&#xff0c;其基本思想为&#xff1a;任取待排序元素序列中的某元素…