vue集成ueditor

相关代码见github

1.引入ueditor相关的文件,具体目录见下图如下

我将下载的文件放在static下面,这里专门用来放置相关的静态文件

(在ueditor.config.js需要配置一下路径 var URL = window.UEDITOR_HOME_URL || ‘/static/ueditor_1/‘)根据自己的文件路径各自处理

2.新建一个Ueditor.vue组件对象,该组件用来封装ueditor,用来进行复用.

<template>
  <div>
    <!--下面通过传递进来的id完成初始化-->
    <script :id="randomId"  type="text/plain"></script>
  </div>
</template>

<script>

  //需要修改  ueditor.config.js 的路径
  //var URL = window.UEDITOR_HOME_URL || ‘/static/ueditor_1/‘;

  //主体文件引入
  import ‘../../static/ueditor_1/ueditor.config.js‘
  import ‘../../static/ueditor_1/ueditor.all.min.js‘
  import ‘../../static/ueditor_1/lang/zh-cn/zh-cn.js‘
  //主体文件引入

  export default {
    props: {
      //配置可以传递进来
      ueditorConfig:{}
    },
    data () {
      return {
        //每个编辑器生成不同的id,以防止冲突
        randomId: ‘editor_‘ + (Math.random() * 100000000000000000),
        //编辑器实例
        instance: null,
      };
    },
    //此时--el挂载到实例上去了,可以初始化对应的编辑器了
    mounted () {
      this.initEditor()
    },

    beforeDestroy () {
      // 组件销毁的时候,要销毁 UEditor 实例
      if (this.instance !== null && this.instance.destroy) {
        this.instance.destroy();
      }
    },
    methods: {
      initEditor () {
        //dom元素已经挂载上去了
          this.$nextTick(() => {
            this.instance = UE.getEditor(this.randomId, this.ueditorConfig);
            // 绑定事件,当 UEditor 初始化完成后,将编辑器实例通过自定义的 ready 事件交出去
            this.instance.addListener(‘ready‘, () => {
              this.$emit(‘ready‘, this.instance);
            });
          });
        }
    }
  };
</script>

3.Ueditor的使用,通过对组件的监听可以实现回调,把ueditor传回父组件.

<template>
  <div id="app">
    vue_ueditor
    <div>
      //此时监听子组件的事件,编辑器实例回调
      <Ueditor @ready="editorReady" style="width: 500px;height: 440px;"></Ueditor>
    </div>

  </div>
</template>

<script>
  import Ueditor from ‘./components/Ueditor‘

  export default {
    data(){
      return{
        content:‘‘
      }
    },
    name: ‘app‘,
    components: {
      Ueditor
    },
    methods: {
      editorReady (instance) {
        instance.setContent(‘‘);

        instance.addListener(‘contentChange‘, () => {
          this.content = instance.getContent();
        });
      },
    },
  }
</script>

4.此时封装基本完成,但是上传图片功能还没实现,接下来实现图片上传功能.

// 服务器统一请求接口路径
//在ueditor.config.js里面进行配置,本项目使用的是php后台,后台按照文档配置好,直接通过链接过去即可
//测试发现在本地上传比较慢
//项目打包上传服务器之后,速度回复正常
    serverUrl: ‘http://xxx.com/Public/Home/ueditor/php/controller.php‘,

5.温馨提示 通过设置index.js进行跨域调试(改完需要重新run dev)

  dev: {
    env: require(‘./dev.env‘),
    port: 8085,
    assetsSubDirectory: ‘static‘,
    assetsPublicPath: ‘/‘,//跨域测试接口
    proxyTable: {
      ‘/baseUrl‘: {
        target: ‘http://xxx.com/index.php‘,
        changeOrigin: true,
        pathRewrite: {
          ‘^/baseUrl‘: ‘‘
        }
      },//跨域测试图片上传
       ‘/baseImgUrl‘: {
         target: ‘http://xxx.com‘,
         changeOrigin: true,
         pathRewrite: {
           ‘^/baseImgUrl‘: ‘‘
         }
       }
    },
时间: 2025-01-02 19:56:14

vue集成ueditor的相关文章

ExtJs 集成UEditor and KindEditor

贡献两个Extjs 4.2 编辑器插件 1.UEditor(使用页面需要引用UEditor相关文件) Ext.define('App.ux.UEditor', { extend: 'Ext.form.field.Text', alias: ['widget.ueditor'], //alternateClassName: 'Ext.form.UEditor', fieldSubTpl: [ '<textarea id="{id}" {inputAttrTpl}', '<tp

在Django Xadmin中集成Ueditor

Ueditor是由百度开发的一个开源的富文本编辑器,有人做了一个将其集成到Django中的方案(请戳),但是在xadmin中却无法正常加载编辑器. 其使用了一个模板用来呈现Ueditor的编辑界面 <textarea name={{ UEditor.name }} id=id_{{ UEditor.name }} style="display:inline-block;width:{{ UEditor.width }}px; {{ UEditor.css }}">{{UEd

vue集成百度UEditor富文本编辑器

在前端开发的项目中.难免会遇到需要在页面上集成一个富文本编辑器.那么.如果你有这个需求.希望可以帮助到你 vue是前端开发者所追捧的框架,简单易上手,但是基于vue的富文本编辑器大多数太过于精简.于是我将百度富文本编辑器放到vue项目中使用.效果图如下 废话不多说. 1.使用vue-cli构建一个vue项目.然后下载UEditor源码.地址:http://ueditor.baidu.com/website/ 把项目复制到vue项目的static文件下.目的是让服务可以访问到里面的文件,打开UEd

在Vue2.0中集成UEditor 富文本编辑器

在vue的'项目中遇到了需要使用富文本编辑器的需求,在github上看了很多vue封装的editor插件,很多对图片上传和视频上传的支持并不是很好,最终还是决定使用UEditor. 这类的文章网上有很多,我进行了摸索.手写代码.汇总.排版,形成了这篇文章. 下载对应的UEditor源码 首先,去官网上下载UEditor的源码,根据你后台语言的不同下载对应的版本(PHP.Asp..Net.Jsp),下载地址. 下载之后,把资源放到 /static/ue/ 静态目录下.文档结构如下: (我把UEdi

springboot+vue集成mavon-editor,开发在线文档知识库

先睹为快,来看下效果: 技术选型 SpringBoot.Spring Security.Oauth2.Vue-element-admin 集成mavon-editor编辑器 安装 mavon-editor npm install mavon-editor --save 引入mavon-editor 后台使用 js文件:index.js // 全局注册 import Vue from 'vue' import mavonEditor from 'mavon-editor' import 'mavo

xadmin集成ueditor

from DjangoUeditor.models import UEditorField content = UEditorField(u"内容", imagePath="uploadimg/",blank=True, null=True) 在adminx.py里 style_fields = {'content': 'ueditor'} 在adminx里plugins里加入ueditor.py import xadminfrom django.db.models

vue 集成百度富文本编辑器

<template> <div> <textarea style="display:none" id="editor_content" name="contentHtml"></textarea> <script id="editor" type="text/plain"></script> </div></templ

帝国cms后台编辑器集成ueditor编辑器

我更换成百度编辑器的原因有以下几点:1.使用百度编辑器的图片粘贴上传功能,这个功能实在是太有必要了,有开发的过程中或上传的过程中,通常用qq直接截图,直接放到文章上面,避免了再放到本地保存的情况,真是麻烦 .2.使用word图片转存功能,离线的时候,可以使用Word将文章写好,然后再上传到网站上来.图片是最大的问题,使用百度编辑器可以完美的解决.3.良好的扩展性,百度编辑器貌似开发起插件来更方便容易一些.本功能不修改帝国cms核心代码,所以没得问题.下面介绍步骤:1.下载定制好的百度插件,下面是

Vue集成openlayers

1.安装ol库 使用cnpm i ol -s命令安装 2.建一个olMap.vue文件夹 <template> <div class='olMap'> <h2>{{this.name}}</h2> <div class='map' ref='rootmap'></div> </div> </template> <script> import 'ol/ol.css' import { Map, Vie