Vue轻量级富文本编辑器-Vue-Quill-Editor

Vue轻量级富文本编辑器-Vue-Quill-Editor先看效果图:女神镇楼下载Vue-Quill-Editor npminstallvue-quill-editor–save 下载quill(Vue-Quill-Editor需要依赖) npminstallquill–save 代码 <template>…

大家好,又见面了,我是你们的朋友全栈君。

     

  先看效果图:女神镇楼
      Vue轻量级富文本编辑器-Vue-Quill-Editor

           

  1. 下载Vue-Quill-Editor
     
    
    npm install vue-quill-editor --save

     

  2. 下载quill(Vue-Quill-Editor需要依赖)
     
    npm install quill --save

     

  3. 代码
     
    <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>
        </div>
    </template>
    <script>
    import { quillEditor } from "vue-quill-editor"; //调用编辑器
    import 'quill/dist/quill.core.css';
    import 'quill/dist/quill.snow.css';
    import 'quill/dist/quill.bubble.css';
    export default {
        components: {
            quillEditor
        },
        data() {
            return {
                content: `<p></p><p><br></p><ol><li><strong><em>Or drag/paste an image here.</em></strong></li><li><strong><em>rerew</em></strong></li><li><strong><em>rtrete</em></strong></li><li><strong><em>tytrytr</em></strong></li><li><strong><em>uytu</em></strong></li></ol>`,
                editorOption: {}
            }
        },
        methods: {
            onEditorReady(editor) { // 准备编辑器
    
            },
            onEditorBlur(){}, // 失去焦点事件
            onEditorFocus(){}, // 获得焦点事件
            onEditorChange(){}, // 内容改变事件
        },
        computed: {
            editor() {
                return this.$refs.myQuillEditor.quill;
            },
        }
    }
    </script>
    

    OK,搞定,简洁的富文本编辑器就展现在你眼前了,另外附上API。Vue-Quill-Editor

  4. 自定义 toolbar 菜单
     

    editorOption: {
                  placeholder: "请在这里输入",
                  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']    //上传图片、上传视频
                              ]
                          }
                    },

     

  5. 存储及将数据库中的数据反显为HTML字符串

    后台接收到数据后会将字符中的标签进行转码,所以我们要先进行一个解码的操作让他变成标签形式的字符串:
    例如后台接收的数据如下:”&lt;h1&gt;title&lt;”  ,对应解码后就是`<h1>title</h1>`。

    //把实体格式字符串转义成HTML格式的字符串
    escapeStringHTML(str) {
        str = str.replace(/&lt;/g,'<');
        str = str.replace(/&gt;/g,'>');
        return str;
    }

    然后将返回值赋值给对应的参数:
     

    <div v-html="str" class="ql-editor">
        {
        
        {str}}
    </div>

    上面的str就是转码函数返回的值,我们要先在data中定义,所以我现在将新增跟展示放在一起,代码如下:

     

    <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>
            <!-- 从数据库读取展示 -->
            <div v-html="str" class="ql-editor">
                {
        
        {str}}
            </div>
        </div>
    </template>
    <script>
    import { quillEditor } from "vue-quill-editor"; //调用编辑器
    import 'quill/dist/quill.core.css';
    import 'quill/dist/quill.snow.css';
    import 'quill/dist/quill.bubble.css';
    export default {
        components: {
            quillEditor
        },
        data() {
            return {
                content: `<p></p><p><br></p><ol><li><strong><em>Or drag/paste an image here.</em></strong></li><li><strong><em>rerew</em></strong></li><li><strong><em>rtrete</em></strong></li><li><strong><em>tytrytr</em></strong></li><li><strong><em>uytu</em></strong></li></ol>`,
                str: '',
                editorOption: {}
            }
        },
        methods: {
            onEditorReady(editor) { // 准备编辑器
    
            },
            onEditorBlur(){}, // 失去焦点事件
            onEditorFocus(){}, // 获得焦点事件
            onEditorChange(){}, // 内容改变事件
            // 转码
            escapeStringHTML(str) {
                str = str.replace(/&lt;/g,'<');
                str = str.replace(/&gt;/g,'>');
                return str;
            }
        },
        computed: {
            editor() {
                return this.$refs.myQuillEditor.quill;
            },
        },
        mounted() {
            let content = '';  // 请求后台返回的内容字符串
            this.str = this.escapeStringHTML(content);
        }
    }
    </script>
    

    最后提醒大家一句,插件只兼容IE10以上,不能向下兼容,如果要向下兼容,只能放弃使用这个插件。     

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134605.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 高德地图js api教程_高德地图sdk使用教程

    高德地图js api教程_高德地图sdk使用教程前言:由于项目需求需要在项目中实现手机端(基于网页)考勤打卡功能,最初考虑使用H5自身定位功能,但尝试过后,效果很不稳定。然后尝试使用百度地图JsAPI,百度家的稳定倒是很稳定,没想到的是定位位置和实际位置居然相差几十公里,一开始是以为自己配置有问题,浪费了我大半天时间去找原因,最后发现他本身提供的API就是偏差很大距离的,他自己家的倒是定位很准,对外开放的API简直惨不忍睹。百度API浏……

    2022年10月10日
    5
  • Hadoop生态圈的核心组件包括哪些

    Hadoop生态圈的核心组件包括哪些Hadoop生态圈的核心组件包括哪些Hadoop是现在最流行的大数据分布式基础架构,其实现了很多大数据相关的核心功能,并且支持大量的核心项目。那么,今天小编就给大家盘点一下Hadoop生态圈核心组件,感兴趣的小伙伴快来学习下吧!1、Hbase:一个基于列的存储的分布式数据库,其数据模型为Key-Value模式,便于扩展并且查询高效。2、Hive:Hive是Hadoop提供的一个数据仓库,也提供数据库部分功能。其最大的作用还是简化了编写MapReduce程序的过程,只需要利用SQL语句即可完成MapRe

    2022年5月11日
    42
  • 树形结构的数据库表设计

    树形结构的数据库表设计树形结构的数据库表Schema设计   程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,因此是不能直接将Tree存入DBMS,设计合适的Schema及其对应的CRUD算法是实现关系型数据库中存储树形结构的关键。   理想中树…

    2022年6月20日
    34
  • socat 使用「建议收藏」

    转原文链接:http://www.wenquan.name/?p=1158用socat试几个netcat常用的用法,对比如下:1.听tcp12345端口#nc-l127.0.0.112345#socattcp-listen:12345-2.向远处tcp12345端口发点字#echo“test”|nc127.0.0.112345#echo“t…

    2022年4月8日
    54
  • pycharm选择运行环境_安卓漂亮的界面

    pycharm选择运行环境_安卓漂亮的界面手把手教你配置最漂亮的PyCharm界面,Python程序员必备!简介:高逼格超美的IDE界面,是每个程序员的梦想!随着人工智能/机器学习的兴起,Python作为一门“漂亮的语言”,再次获得广大程序员的关注。而JetBrains出品的PyCharm无疑是最好用的PythonIDE之一。俗话说“工欲善其事,必先利其器”,把自己的IDE配置得既有逼格又好看,这是每个Python程序员必备的技能。推荐给大家一个学习交流的地方:719+139+688,本文就手把手的教你,如何把自己的PyCharm配置的

    2022年8月28日
    31
  • webpack 核心_学术界最重要的价值基础是

    webpack 核心_学术界最重要的价值基础是前言本质上,webpack是一个用于现代JavaScript应用程序的静态模块打包工具。当webpack处理应用程序时,它会在内部构建一个依赖图(dependencygraph),此

    2022年7月29日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号