详解Vue基于vue-quill-editor富文本编辑器使用心得


Posted in Javascript onJanuary 03, 2019

vue-quill-editor的guthub地址 ,现在市面上有很多的富文本编辑器,我个人还是非常推荐Vue自己家的vue-quill-deitor,虽然说只支持IE10+,但这种问题,帅给别人吧!

那么我们直击正题,在vue中使用quill呢,我们需要npm进行安装,安装命令如下:

npm install vue-quill-editor

再安装依赖项

npm install quill

使用:

在main.js中进行引入

import Vue from 'vue'
import VueQuillEditor from 'vue-quill-editor'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
 
Vue.use(VueQuillEditor)

下面的css一定还要引用,否则编辑器将会没有css。

在vue页面中代码如下:

<template>
 <div class="edit_container">
  <quill-editor 
   v-model="content" 
   ref="myQuillEditor" 
   :options="editorOption" 
   @blur="onEditorBlur($event)" @focus="onEditorFocus($event)"
   @change="onEditorChange($event)">
  </quill-editor>
  <button v-on:click="saveHtml">保存</button>
 </div> 
</template>

<script>
export default {
 name: 'App',
 data(){
  return {
   content: `<p>hello world</p>`,
   editorOption: {}
  }
 },computed: {
  editor() {
   return this.$refs.myQuillEditor.quill;
  },
 },methods: {
  onEditorReady(editor) { // 准备编辑器
  },
  onEditorBlur(){}, // 失去焦点事件
  onEditorFocus(){}, // 获得焦点事件
  onEditorChange(){}, // 内容改变事件
  saveHtml:function(event){
   alert(this.content);
  }
 }
}
</script>

<style>
#app {
 font-family: 'Avenir', Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 text-align: center;
 color: #2c3e50;
 margin-top: 60px;
}
</style>

其中的v-model就是我们自己的html代码,你可以将这个html直接放到数据库,这样也就没有什么问题了。如果想要禁用编辑器可以通过以下代码:

onEditorFocus(val,editor){ // 富文本获得焦点时的事件
  console.log(val); // 富文本获得焦点时的内容
  editor.enable(false); // 在获取焦点的时候禁用
 }

主题设置

在vue项目中,具体引入Quill的文件中,需要使用哪种主题就写哪个。默认是snow主题的。

data(){
  return {
   content: `<p>hello world</p>`,
   editorOption: {
    theme:'snow'
   }
  }
 }

工具栏设置

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'] //上传图片、上传视频
 
   ]
   },
   theme:'snow'
  }
  }

图片推拽上传

需要安装  quill-image-drop-module 模块,那么改一下imageDrop设置为true,你就可以把你电脑上的图片网上一坨就可以了。

import { quillEditor } from 'vue-quill-editor'
import * as Quill from 'quill' //引入编辑器
import { ImageDrop } from 'quill-image-drop-module';
Quill.register('modules/imageDrop', ImageDrop);
export default {
 name: 'App',
 data(){ 
  return{
  editorOption:{
   modules:{
   imageDrop:true, 
   },
   theme:'snow'
  }
  }
 }

那上传文件那你就不用想了,你也许想先把图片放上去,其实这个文件托上去就已经是个base64了,等你在前台读数的时候直接decode就好~

详解Vue基于vue-quill-editor富文本编辑器使用心得

图片调整大小ImageResize

return{
  editorOption:{
   modules:{



imageResize: {}
   },
   theme:'snow'
  }
  }

以上就是我对vue-quill-editor的认识, 希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS中的prototype与面向对象的实例讲解
May 22 Javascript
JS实现的左侧竖向滑动菜单效果代码
Oct 19 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
Nov 07 Javascript
jQuery实现拖拽可编辑模块功能代码
Jan 12 Javascript
Vue仿手机qq的实例代码(demo)
Sep 08 Javascript
JS实现图片放大镜插件详解
Nov 06 Javascript
基于openlayers4实现点的扩散效果
Aug 17 Javascript
angular中子控制器向父控制器传值的实例
Oct 08 Javascript
jquery无缝图片轮播组件封装
Nov 25 jQuery
详解keep-alive + vuex 让缓存的页面灵活起来
Apr 19 Javascript
js中switch语句的学习笔记
Mar 25 Javascript
JavaScript canvas实现文字时钟
Jan 10 Javascript
Vue2 添加数据可视化支持的方法步骤
Jan 02 #Javascript
如何在Vue.js中实现标签页组件详解
Jan 02 #Javascript
如何使用less实现随机下雪动画详解
Jan 02 #Javascript
详解Vue2 添加对scss的支持
Jan 02 #Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
Jan 02 #Javascript
JS中数据结构之栈
Jan 01 #Javascript
微信小程序自定义导航栏
Dec 31 #Javascript
You might like
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
Angular4学习之Angular CLI的安装与使用教程
2018/01/04 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
django配置app中的静态文件步骤
2020/03/27 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
Python日志处理模块logging用法解析
2020/05/19 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
法国设计制造的扫帚和刷子:Andrée Jardin
2018/12/06 全球购物
模具专业求职信
2014/06/26 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
导游词之韩国济州岛
2019/10/28 职场文书
乔迁新居祝福语
2019/11/04 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
Django项目如何正确配置日志(logging)
2021/04/29 Python