最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Vue.js结合Ueditor富文本编辑器的使用方法

来源:动视网 责编:小采 时间:2020-11-27 19:34:59
文档

Vue.js结合Ueditor富文本编辑器的使用方法

Vue.js结合Ueditor富文本编辑器的使用方法:本篇文章主要介绍了Vue.js结合Ueditor的项目实例代码,这里整理了详细的代码,具有一定的参考价值,有兴趣的可以了解一下在前端开发的项目中。难免会遇到需要在页面上集成一个富文本编辑器。前一段时间公司Vue.js项目需要使用UEditor富文本编辑器,在百度上
推荐度:
导读Vue.js结合Ueditor富文本编辑器的使用方法:本篇文章主要介绍了Vue.js结合Ueditor的项目实例代码,这里整理了详细的代码,具有一定的参考价值,有兴趣的可以了解一下在前端开发的项目中。难免会遇到需要在页面上集成一个富文本编辑器。前一段时间公司Vue.js项目需要使用UEditor富文本编辑器,在百度上
 本篇文章主要介绍了Vue.js结合Ueditor的项目实例代码,这里整理了详细的代码,具有一定的参考价值,有兴趣的可以了解一下

在前端开发的项目中。难免会遇到需要在页面上集成一个富文本编辑器。
前一段时间公司Vue.js项目需要使用UEditor富文本编辑器,在百度上搜索一圈没有发现详细的说明,决定自己尝试,忙活了一天终于搞定了。

1. 总体思路

1.1 模块化

vue的很大的一个优势在于模块化,我们可以通过模块化实现页面和逻辑的复用。所以可以把Ueditor重新封装成一个.vue的模板文件。其他组件通过引入这个模板实现代码复用。

1.2 数据传输

首先父组件需要设置编辑器的长度、宽度、初始文本,这些数据可以通过props来传递。编辑器中的文本变化可以通过vue自定义事件向父组件传递。

2. 具体实现步骤

2.1 引入关键的JS以及CSS文件

将以下文件全部拷贝到项目中

2.2 配置Ueditor.config.js

首先配置URL参数,我们需要将这个路径指向刚才拷贝的文件的更目录,注意这里最好使用相对路劲。

然后是默认宽度高度的设置

,initialFrameWidth:null // null表示宽度自动
,initialFrameHeight:320

其他功能的配置可以在官方文档查看

2.3 创建编辑器模板

我们需要在编辑器模板中import Ueditor核心JS库,并添加contentChange回调函数就大功告成了。

之所以使用import语法来引入核心JS库是因为这样更符合ES6模块化的规范,我看到网上有人建议在main.js中引入JS,但是过早地引入JS可能导致页面首次加载缓慢。

<template>
 <p ref="editor"></p>
</template>

<script>
 /* eslint-disable */
 import '../../../assets/js/ueditor/ueditor.config';
 import '../../../assets/js/ueditor/ueditor.all';
 import '../../../assets/js/ueditor/lang/zh-cn/zh-cn';

 import { generateRandonInteger } from '../../../vuex/utils';

 export default {
 data() {
 return {
 id: generateRandonInteger(100000) + 'ueditorId',
 };
 },
 props: {
 value: {
 type: String,
 default: null,
 },
 config: {
 type: Object,
 default: {},
 }
 },
 watch: {
 value: function value(val, oldVal) {
 this.editor = UE.getEditor(this.id, this.config);
 if (val !== null) {
 this.editor.setContent(val);
 }
 },
 },
 mounted() {
 this.$nextTick(function f1() {
 // 保证 this.$el 已经插入文档

 this.$refs.editor.id = this.id;
 this.editor = UE.getEditor(this.id, this.config);

 this.editor.ready(function f2() {
 this.editor.setContent(this.value);

 this.editor.addListener("contentChange", function () {
 const wordCount = this.editor.getContentLength(true);
 const content = this.editor.getContent();
 const plainTxt = this.editor.getPlainTxt();
 this.$emit('input', { wordCount: wordCount, content: content, plainTxt: plainTxt });
 }.bind(this));

 this.$emit('ready', this.editor);
 }.bind(this));
 });
 },
 };
</script>

<style>
 body{
 background-color:#ff0000;
 }
</style>

3. 编辑器的使用

使用编辑器模板的时候我需要通过props传入config以及初始文本value。

<template xmlns:v-on="http://www.w3.org/1999/xhtml">
 <p class="edit-area">
 <ueditor v-bind:value=defaultMsg v-bind:config=config v-on:input="input" v-on:ready="ready"></ueditor>
 </p>

</template>

<script>
 import ueditor from './ueditor.vue';

 export default {
 components: {
 ueditor,
 },
 data() {
 return {
 defaultMsg: '初始文本', 
 config: {
 initialFrameWidth: null,
 initialFrameHeight: 320,
 },
 };
 },
 };
</script>

如果需要让Ueditor上传图片的话,还需要在后台配置一个接口。这部分还没有时间研究,等过几天补上

文档

Vue.js结合Ueditor富文本编辑器的使用方法

Vue.js结合Ueditor富文本编辑器的使用方法:本篇文章主要介绍了Vue.js结合Ueditor的项目实例代码,这里整理了详细的代码,具有一定的参考价值,有兴趣的可以了解一下在前端开发的项目中。难免会遇到需要在页面上集成一个富文本编辑器。前一段时间公司Vue.js项目需要使用UEditor富文本编辑器,在百度上
推荐度:
标签: VUE 的说明 ueditor
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top