vue中如何使用富文本详细讲解

一、cnpm 安装 vue-quill-editor

cnpm install vue-quill-editor

二、在main.js中引入

import VueQuillEditor from ‘vue-quill-editor’
// require styles 引入样式
import ‘quill/dist/quill.core.css’
import ‘quill/dist/quill.snow.css’
import ‘quill/dist/quill.bubble.css’
Vue.use(VueQuillEditor)

三、在模块中引用

<template>
	<div>
        <quill-editor 
            v-model="content" 
            ref="myQuillEditor" 
            :options="editorOption" 
            @blur="onEditorBlur($event)" @focus="onEditorFocus($event)"
            @change="onEditorChange($event)">
        </quill-editor>
        <!-- 富文本内容 -->
        <div class="text"></div>
        <button v-on:click="saveHtml">保存</button>
    </div>
</template> 
<script>
    import { quillEditor } from 'vue-quill-editor'
    import $ from 'jquery'//先安装jquery
    export default{
        data(){
            return {
                content:null,
                editorOption:{}
            }
        },
        computed: {
	       editor() {
	            return this.$refs.myQuillEditor.quill;
	        },
	    },
        methods:{
            onEditorBlur(){//失去焦点事件
            },
            onEditorFocus(){//获得焦点事件
            },
            onEditorChange(){//内容改变事件
            	//console.log(this.content)
        		//$('.text').html(this.content)
            },
            saveHtml(event){//点击保存按钮保存
	          alert(this.content);
	        }
        }
    }
</script>    

在这里插入图片描述
这样引入后你会得到这样一个编辑器在这里插入图片描述
那么你如果不需要那么多的工具栏功能要怎么办呢;应该是通过options来修改但是他的默认值是什么的,这个官方文档 :https://quilljs.com/docs/themes/里面看到了类似的方法 。
在这里插入图片描述
初始值的设置应该是一样的吧
所以我就照着toolbar部分去修改了options

<script>
    import { quillEditor } from 'vue-quill-editor'
    export default{
        data(){
            return {
                content:null,
                editorOption:{
                    modules:{
                        toolbar:[
                          ['bold', 'italic', 'underline', 'strike'],        // toggled buttons
                           ['blockquote', 'code-block']
                        ]
                    }
                }
            }
        },
        methods:{
            onEditorBlur(){//失去焦点事件
            },
            onEditorFocus(){//获得焦点事件
            },
            onEditorChange(){//内容改变事件
            }
        }
    }
</script>   

果然 生效了 只显示了我写在toolbar里面的模块
在这里插入图片描述
那么toolbar工具栏对应功能的模块名是什么呢 我继续往下看文档 发现大致上有以下的功能

背景颜色 - background
加粗- bold
颜色 - color
字体 - font
内联代码 - code
斜体 - italic
链接 - link
大小 - size
删除线 - strike
上标/下标 - script
下划线 - underline
引用- blockquote
标题 - header
缩进 - indent
列表 - list
文本对齐 - align
文本方向 - direction
代码块 - code-block
公式 - formula
图片 - image
视频 - video
清除字体样式- clean 

然而我试着直接引入发现有部分的图标并没有显示;
然后我发现他有些如list这种列表应该是有默认值,我在很后面的文档里发现了这个默认格式规范 这个官方文档也是个坑 内容不写到一块的
在这里插入图片描述
.只需要填写功能名的
加粗 - bold;
斜体 - italic
下划线 - underline
删除线 - strike
引用- blockquote
代码块 - code-block
公式 - formula
图片 - image
视频 - video
清除字体样式- clean
这一类的引用 直接[‘name’,‘name’]这种格式就好了

2.需要有默认值的
标题 - header
[{ ‘header’: 1 }, { ‘header’: 2 }] 值字体大小

列表 - list
[{ ‘list’: ‘ordered’}, { ‘list’: ‘bullet’ }], 值ordered,bullet

上标/下标 - script
[{ ‘script’: ‘sub’}, { ‘script’: ‘super’ }], 值sub,super

缩进 - indent
[{ ‘indent’: ‘-1’}, { ‘indent’: ‘+1’ }], 值-1,+1等

文本方向 - direction
[{ ‘direction’: ‘rtl’ }], 值rtl
这部分如图所示会填写的内容对应提供的值展示功能的图标 如果多个值他家就显示多个图标
在这里插入图片描述
3.有多个值 以下拉列表形式显示

大小 - size
[{ ‘size’: [‘small’, false, ‘large’, ‘huge’] }],

标题 - header
[{ ‘header’: [1, 2, 3, 4, 5, 6, false] }],
这部分显示如图所示 以下拉列形式显示
在这里插入图片描述
4.有系统默认值的功能只需填写一个空数组 就会有出现默认的选项
颜色 - color
背景颜色 - background
字体 - font
文本对齐 - align
他们的格式都是
[{ ‘color’: [] }, { ‘background’: [] }],
[{ ‘font’: [] }],
[{ ‘align’: [] }]
在这里插入图片描述
toolbar自定义工具栏就是这样咯 剩下的就是根据填写功能到options的modules里就可以了

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'
      }
   }
  • 17
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue使用Vuex进行状态管理是非常常见的,它可以帮助我们更好地组织和管理应用程序的状态。下面是一个简单的例子,演示如何在Vue使用Vuex进行传值。 1. 安装Vuex 首先,我们需要安装Vuex。可以使用npm或yarn来安装: ``` npm install vuex --save ``` 或者 ``` yarn add vuex ``` 2. 创建store 在Vue使用Vuex需要先创建一个store。在store,我们可以定义和管理应用程序的所有状态。 ``` import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment(state) { state.count++ } } }); export default store; ``` 在这个例子,我们定义了一个名为“count”的状态和一个名为“increment”的mutation,当我们调用“increment”mutation时,它会增加“count”状态的值。 3. 在Vue组件使用store 现在我们已经创建了一个store,接下来让我们在Vue组件使用它。我们需要使用Vuex提供的“mapState”和“mapMutations”辅助函数来访问store的状态和mutations。 ``` <template> <div> <h1>{{ count }}</h1> <button @click="increment">Increment</button> </div> </template> <script> import { mapState, mapMutations } from 'vuex'; export default { computed: { ...mapState(['count']) }, methods: { ...mapMutations(['increment']) } } </script> ``` 在这个例子,我们使用了“mapState”辅助函数来将“count”状态映射到组件的计算属性,并使用“mapMutations”辅助函数将“increment”mutation映射到组件的方法。这样,在组件就可以直接使用“count”状态和“increment”mutation了。 以上就是使用Vuex进行状态管理的基本过程。在实际开发,我们通常需要定义更多的状态和mutations,并使用actions和getters等高级特性来管理更复杂的状态。但基本的使用方法和原理都是相似的。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值