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

1. 总体思路
1.1 模块化
vue的很大的一个优势在于模块化,我们可以通过模块化实现页面和逻辑的复用。所以可以把Ueditor重新封装成一个.vue的模板文件。其他组件通过引入这个模板实现代码复用。
1.2 数据传输
首先父组件需要设置编辑器的长度、宽度、初始文本,这些数据可以通过props来传递。编辑器中的文本变化可以通过vue自定义事件向父组件传递。
2. 具体实现步骤
2.1 引入关键的JS以及CSS文件
将以下文件全部拷贝到项目中
2.2 配置Ueditor.config.js
首先配置URL参数,我们需要将这个路径指向刚才拷贝的文件的更目录,注意这里最好使用相对路劲。
var URL = window.UEDITOR_HOME_URL || '/static/ueditor/';
然后是默认宽度高度的设置
,initialFrameWidth:null // null表示宽度自动 ,initialFrameHeight:320
其他功能的配置可以在官方文档查看
2.3 创建编辑器模板
我们需要在编辑器模板中import Ueditor核心JS库,并添加contentChange回调函数就大功告成了。
之所以使用import语法来引入核心JS库是因为这样更符合ES6模块化的规范,我看到网上有人建议在main.js中引入JS,但是过早地引入JS可能导致页面首次加载缓慢。
<template>
<div ref="editor"></div>
</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">
<div class="edit-area">
<ueditor v-bind:value=defaultMsg v-bind:config=config v-on:input="input" v-on:ready="ready"></ueditor>
</div>
</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
# js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
# 不到200行 JavaScript 代码实现富文本编辑器的方法
# 使用JavaScript实现表格编辑器(实例讲解)
# JSP实用教程之简易页面编辑器的实现方法(附源码)
# JS模仿编辑器实时改变文本框宽度和高度大小的方法
# 分享9个最好用的JavaScript开发工具和代码编辑器
# node.js集成百度UE编辑器
# Javascript实现简单的富文本编辑器附演示
# javascript获取ckeditor编辑器的值(实现代码)
# 4个顶级JavaScript高级文本编辑器
# 编辑器
# 可以通过
# 复用
# 文档
# 还没有
# 是因为
# 首次
# 几天
# 要在
# 我们可以
# 这部
# 大功告成
# 自定义
# 还需
# 回调
# 上传图片
# 补上
# 大家多多
# 搞定了
# 更符合
相关文章:
如何选择高性价比服务器搭建个人网站?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
内部网站制作流程,如何建立公司内部网站?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
广州美橙建站如何快速搭建多端合一网站?
建站主机如何安装配置?新手必看操作指南
建站之家VIP精选网站模板与SEO优化教程整合指南
建站之星如何助力网站排名飙升?揭秘高效技巧
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
模具网站制作流程,如何找模具客户?
建站之星伪静态规则如何正确配置?
网站制作模板下载什么软件,ppt模板免费下载网站?
常州自助建站费用包含哪些项目?
,巨量百应是干嘛的?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
如何在香港免费服务器上快速搭建网站?
用v-html解决Vue.js渲染中html标签不被解析的问题
如何在IIS服务器上快速部署高效网站?
建站OpenVZ教程与优化策略:配置指南与性能提升
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
php json中文编码为null的解决办法
如何通过远程VPS快速搭建个人网站?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
C++中引用和指针有什么区别?(代码说明)
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
学校建站服务器如何选型才能满足性能需求?
如何通过二级域名建站提升品牌影响力?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
C#如何在一个XML文件中查找并替换文本内容
网站制作员失业,怎样查看自己网站的注册者?
全景视频制作网站有哪些,全景图怎么做成网页?
网站制作公司排行榜,四大门户网站排名?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
如何在建站之星绑定自定义域名?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
大型企业网站制作流程,做网站需要注册公司吗?
电商网站制作价格怎么算,网上拍卖流程以及规则?
广州建站公司哪家好?十大优质服务商推荐
建站之星在线客服如何快速接入解答?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
建站主机与虚拟主机有何区别?如何选择最优方案?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
Java解压缩zip - 解压缩多个文件或文件夹实例
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
公司网站制作价格怎么算,公司办个官网需要多少钱?
海南网站制作公司有哪些,海口网是哪家的?
C#怎么使用委托和事件 C# delegate与event编程方法
宝塔面板如何快速创建新站点?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
*请认真填写需求信息,我们会在24小时内与您取得联系。