详解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 相关文章推荐
静态的动态续篇之来点XML
Dec 23 Javascript
jQuery.extend 函数的详细用法
Jun 27 Javascript
EditPlus注册码生成器(js代码实现)
Mar 25 Javascript
JsRender for object语法简介
Oct 31 Javascript
JSON与XML优缺点对比分析
Jul 17 Javascript
学JavaScript七大注意事项【必看】
May 04 Javascript
基于JavaScript实现本地图片预览
Feb 08 Javascript
Vue项目webpack打包部署到服务器的实例详解
Jul 17 Javascript
vue2.0学习之axios的封装与vuex介绍
May 28 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
Jul 15 Javascript
javascript自定义日期比较函数用法示例
Jul 22 Javascript
JS实现“全选”和&quot;全不选&quot;功能代码实例
Feb 06 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
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
浅析php与数据库代码开发规范
2013/08/08 PHP
PHP常用技巧汇总
2016/03/04 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
javascript函数特点实例分析
2015/05/14 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
Python发送email的3种方法
2015/04/28 Python
python django事务transaction源码分析详解
2017/03/17 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
使用Python封装excel操作指南
2021/01/29 Python
HTML+CSS3 模仿Windows7 桌面效果
2010/06/17 HTML / CSS
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
团日活动总结书格式
2014/05/08 职场文书
个人授权委托书格式
2014/08/30 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
Django Paginator分页器的使用示例
2021/06/23 Python