vue常用的文本编辑器vue-ueditor-wrap使用总结

本文详细介绍了如何在Vue项目中集成富文本编辑器,包括安装依赖、下载ueditor、引入VueUeditorWrap组件、实例化编辑器、v-model绑定数据及展示编辑内容的方法。
该文章已生成可运行项目,

项目地址:https://github.com/HaoChuan9421/vue-ueditor-wrap/blob/master/public/UEditor/ueditor.config.js

一、安装依赖:

首先在前端项目Terminal中执行以下命令:

如果你没安装yarn就用npm(第一条命令),安装过yarn就用(第二条命令):简单测试安装yarn与否,可以在Terminal输入yarn命令,如果提示yarn不是内部命令就是说明你还未成功安装yarn,这时你可以选择用npm命令安装,如果npm也不是内部命令,那就说明你node.js可能也没装。

npm i vue-ueditor-wrap
# 或者 
yarn add vue-ueditor-wrap

二、下载ueditor并将其复制到Static目录下 如图所示:

下载地址:链接:https://pan.baidu.com/s/1EkENeonqdV0nihswQkrwDA 
提取码:5k52 
(当然你也可以直接去网上下载)

三、引入VueUeditorWrap组件

import VueUeditorWrap from 'vue-ueditor-wrap' // ES6 Module

导入后是灰色的,你需要注册一下这个组件,注册组件:

components: {
  VueUeditorWrap
}
// 或者在 main.js 里将它注册为全局组件
Vue.component('vue-ueditor-wrap', VueUeditorWrap)

注册完,import VueUeditorWrap from 'vue-ueditor-wrap' 变成彩色字体,证明引入组件成功

四、实例化、v-model绑定数据

实例化:

v-model绑定文本编辑器内输入内容,可以用来与后台传数据。

:config绑定编辑器配置内容,可以对编辑器样式进行个性化设置:

data () {
      return {
ueConfig:{
          toolbars: [
            [
              'undo', //撤销
              'bold', //加粗
              'indent', //首行缩进
              'italic', //斜体
              'underline', //下划线
              'strikethrough', //删除线
              'subscript', //下标
              'fontborder', //字符边框
              'superscript', //上标
              'formatmatch', //格式刷
              'fontfamily', //字体
              'fontsize', //字号
              'justifyleft', //居左对齐
              'justifycenter', //居中对齐
              'justifyright', //居右对齐
              'justifyjustify', //两端对齐
              'insertorderedlist', //有序列表
              'insertunorderedlist', //无序列表
              'lineheight',//行间距
            ]
          ],
        'fontfamily':[
          { label:'',name:'songti',val:'宋体,SimSun'},
          { label:'仿宋',name:'fangsong',val:'仿宋,FangSong'},
          { label:'仿宋_GB2312',name:'fangsong',val:'仿宋_GB2312,FangSong'},
          { label:'',name:'kaiti',val:'楷体,楷体_GB2312, SimKai'},
          { label:'',name:'yahei',val:'微软雅黑,Microsoft YaHei'},
          { label:'',name:'heiti',val:'黑体, SimHei'},
          { label:'',name:'lishu',val:'隶书, SimLi'},
          { label:'',name:'andaleMono',val:'andale mono'},
          { label:'',name:'arial',val:'arial, helvetica,sans-serif'},
          { label:'',name:'arialBlack',val:'arial black,avant garde'},
          { label:'',name:'comicSansMs',val:'comic sans ms'},
          { label:'',name:'impact',val:'impact,chicago'},
          { label:'',name:'timesNewRoman',val:'times new roman'}
        ],
          // 初始容器高度
          initialFrameHeight: 300,
          // 初始容器宽度
          initialFrameWidth: '100%',
          // 上传文件接口
          enableAutoSave: false,
          elementPathEnable: false,
          wordCount: false,
        },
}
}

设置完之后效果:

输入内容,进行样式编辑:

点击保存:

我们可以看到,传往后台的数据已经将样式全部保存下来了,就是图中的sm,我的v-model绑定的是ruleForm.sm。

五、展示:

业务需要将存的内容再查出来,然后展示到页面上,效果如图:

这时候只需要使用一个标签即可:

<div v-html=doc.sm></div>

doc.sm是我刚才从数据库sm字段中查出来的。

至此,已经基本满足我的业务需求了,哈哈!!!

 

本文章已经生成可运行项目
<think> 我们正在处理用户的问题:关于vue-ueditor-wrap的详细解释以及本地上传图片和视频的方法。 根据引用内容,我们可以知道: 1. vue-ueditor-wrap是一个Vue组件,它封装了UEditor(百度富文本编辑器),使得在Vue使用UEditor更加简单,支持v-model绑定。 2. 我们需要安装vue-ueditor-wrap(对于Vue 3使用3.x版本)并下载UEditorPlus(或者百度UEditor)的资源文件。 3. 配置中需要特别注意上传文件的接口(serverUrl)以及资源文件的存放路径(UEDITOR_HOME_URL)。 4. 上传功能需要后端接口支持,引用中提到了Spring Boot和Django的配置示例。 用户特别关注本地上传图片和视频的方法,因此我们需要重点说明: - 前端配置:在vue-ueditor-wrap的配置中设置上传接口(serverUrl)。 - 后端需要提供相应的上传接口,并按照UEditor的接口规范返回数据。 步骤: 1. 安装vue-ueditor-wrap 2. 引入并注册组件 3. 配置编辑器,包括上传接口 4. 在模板中使用组件 5. 后端提供上传接口 由于用户可能没有提供后端接口,我们还需要说明后端接口的基本要求。 根据引用[2],我们有一个Spring Boot的上传接口示例(但用户可能使用其他后端,这里给出通用说明)。 同时,引用[3]提到了支持秀米图片抓取和视频插入,但用户没有特别要求,我们主要关注本地上传。 因此,回答结构如下: 1. 介绍vue-ueditor-wrap 2. 安装步骤 3. 基本使用(引入、配置、模板) 4. 重点配置上传(图片和视频) 5. 后端接口的简单说明(因为用户可能也需要后端配置) 注意:引用[2]中提供了一个serverUrl的例子,但提醒勿在生产环境使用,所以我们需要用户替换为自己的上传接口。 另外,引用[4]提到了Django的配置,我们可以简单提及,但用户问题中没有指定后端,所以主要以前端配置为主。 最后,生成相关问题。 由于引用内容中并没有给出完整的后端代码,所以后端部分我们只能给出一般性指导。 </think> ### Vue-Ueditor-Wrap 详解及本地上传方法 #### 一、组件概述 `vue-ueditor-wrap` 是基于百度 UEditor 封装的 Vue 组件[^1],核心优势: 1. **双向绑定**:通过 `v-model` 实现内容同步 2. **自动化管理**:自动处理初始化、内容获取/设置等操作 3. **配置灵活**:支持自定义编辑器参数 #### 二、安装与基础配置 ```bash # Vue 3 项目安装 npm i vue-ueditor-wrap@3.x -S ``` ```html <template> <vue-ueditor-wrap v-model="content" :config="editorConfig" ></vue-ueditor-wrap> </template> <script> import VueUeditorWrap from 'vue-ueditor-wrap' export default { components: { VueUeditorWrap }, data() { return { content: '', editorConfig: { autoHeightEnabled: false, initialFrameHeight: 500, initialFrameWidth: '100%', // 关键上传配置 ↓ serverUrl: 'http://your-api/ueditor/upload', UEDITOR_HOME_URL: '/static/ueditor/' // 资源路径 } } } } </script> ``` #### 三、本地上传配置方法 **上传核心配置项**: ```js editorConfig: { // 上传接口 (需替换为真实后端API) serverUrl: 'http://your-server/ueditor/controller', // 文件上传配置 maximumWords: 100000, // 最大字符数 imageMaxSize: 5 * 1024 * 1024, // 图片最大5MB videoMaxSize: 500 * 1024 * 1024, // 视频最大500MB // 允许上传类型 imageAllowFiles: ['.png', '.jpg', '.jpeg'], videoAllowFiles: ['.mp4', '.avi', '.mov'] } ``` #### 四、后端对接要点 1. **接口规范**: - 需实现 UEditor 的 [统一上传接口](https://fex.baidu.com/ueditor/#server) - 返回标准 JSON 格式: ```json { "state": "SUCCESS", "url": "/upload/image_123.jpg", "title": "screenshot.jpg", "original": "screenshot.jpg" } ``` 2. **Spring Boot 示例**: ```java @PostMapping("/ueditor/upload") public Map<String, String> ueditorUpload(@RequestParam("upfile") MultipartFile file) { // 1. 验证文件类型/大小 // 2. 保存到服务器/OSS // 3. 返回标准格式 } ``` 3. **Django 示例**: ```python # settings.py UEDITOR_UPLOAD_PATH = os.path.join(BASE_DIR, 'uploads') # views.py def ueditor_upload(request): action = request.GET.get('action') if action == 'uploadimage': f = request.FILES['upfile'] # 保存文件到UEDITOR_UPLOAD_PATH return JsonResponse({'state': 'SUCCESS', 'url': f'/media/{f.name}'}) ``` #### 五、常见问题解决 1. **跨域问题**: - 配置后端 CORS 头:`Access-Control-Allow-Origin: *` 2. **路径错误**: - 确保 `UEDITOR_HOME_URL` 指向正确资源目录 - Vue CLI 项目建议放在 `public/static/ueditor` 3. **上传失败排查**: ```js // 在组件上监听错误事件 <vue-ueditor-wrap @beforeInit="handleError" /> methods: { handleError(editor) { editor.addListener('error', (type, err) => { console.error('UEditor错误:', type, err) }) } } ``` [^1]: vue-ueditor-wrap@3.x:一个“包装”了 UEditorVue 组件,支持通过 v-model 来绑定富文本编辑器的内容。 [^2]: Vue & 百度富文本编辑器Ueditor & Spring Boot 前后台整合示例(附带完整源码)。 [^3]: 在vue中应用ueditor引入秀米,支持图片以及背景图抓取。 [^4]: vue+ueditor百度富文本框的前后端配置以及相关bug解决方法。
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值