Vue CKEditor5 快速了解并使用

一、简介

  • Ckeditor5 是一个 JavaScript 富文本编辑器,具有 MVC 架构、自定义数据模型和虚拟 DOM

  • Ckeditor5 辅助地址:GitHub仓库官网地址官方Demo

  • Ckeditor5 安装文档 包含 CDNVue2Vue3AngularReact 等安装方式。

  • 很多功能是需要对应插件支持的,如果有的功能使用不了,则可以自己安装一下插件:插件安装与使用插件列表,也可以使用其他开发者开发的插件。

  • 在使用过程中,遇到报错,可以查看错误码,并结合 官方错误码解释地址 排查解决问题。

    // 冒号后面的就是错误码
    CKEditorError: editor-isreadonly-has-no-setter
    CKEditorError: ckeditor-duplicated-modules
    ...
    

二、官方 Demo 编辑器的 区别安装

  • 官方Demo 中有几个官方封装的编辑器可以 根据需求 调整工具栏后直接进行使用,也可以在这个基础上进行自定义。

  • 经典编辑器classic):

    经典编辑器是大多数用户传统上学习与富文本编辑器相关联的东西,一个工具栏,其编辑区域放置在页面上的特定位置,通常作为表单的一部分,用于向服务器提交一些内容。

    $ npm install --save @ckeditor/ckeditor5-build-classic
    
  • 内联编辑器inline):

    内联编辑器带有一个浮动工具栏,当编辑器获得焦点时(例如通过单击它),该工具栏变得可见。与经典编辑器不同,内联编辑器不会呈现给定元素,它只是使其可编辑。因此,编辑内容的样式在创建编辑器之前和之后将完全相同。

    使用内联编辑器的一个常见场景是为用户提供在网页上实际位置编辑内容的可能性,而不是在单独的管理部分中进行。

    $ npm install --save @ckeditor/ckeditor5-build-inline
    
  • 气球编辑器balloon):

    气球块编辑器可以让你直接在目标位置创建内容,气球编辑器与内联编辑器非常相似。

    $ npm install --save @ckeditor/ckeditor5-build-balloon
    
  • 气球块编辑器balloon-block):

    气球块本质上是 气球编辑器 带有一个额外的块工具栏,可以使用附加到可编辑内容区域的按钮并按照文档中的选择进行访问。工具栏提供对其他块级编辑功能的访问。

    $ npm install --save @ckeditor/ckeditor5-build-balloon-block
    
  • 文档编辑器document):

    文档编辑器专注于类似于原生文字处理器的富文本编辑体验。它最适合创建通常稍后打印或导出为 PDF 文件的文档。

    $ npm install --save @ckeditor/ckeditor5-build-document
    
  • 文档分页编辑器document-paged):

    文档编辑器 差不多,但是多了分页相关的功能。

    $ npm install --save @ckeditor/ckeditor5-build-document-paged
    

三、Vue2.x 基本使用

  • 方式一:

    • 然后安装需要使用的编辑器,以 经典编辑器 举例

      $ npm install --save @ckeditor/ckeditor5-build-classic
      
    • 在页面中使用

      <template>
        <!-- ckeditor 父元素 -->
        <div class="editor-view">
          <!-- 编辑器 -->
          <div id="editor"></div>
        </div>
      </template>
      
      <script>
      // 经典编辑器($ npm install --save @ckeditor/ckeditor5-build-classic)
      import Editor from '@ckeditor/ckeditor5-build-classic'
      
      // 内联编辑器($ npm install --save @ckeditor/ckeditor5-build-inline)
      // import Editor from '@ckeditor/ckeditor5-build-inline'
      
      // 气球编辑器($ npm install --save @ckeditor/ckeditor5-build-balloon)
      // import Editor from '@ckeditor/ckeditor5-build-balloon'
      
      // 气球块编辑器($ npm install --save @ckeditor/ckeditor5-build-balloon-block)
      // import Editor from '@ckeditor/ckeditor5-build-balloon-block'
      
      // 文档编辑器($ npm install --save @ckeditor/ckeditor5-build-document)
      // import Editor from '@ckeditor/ckeditor5-build-document'
      
      // 文档分页编辑器($ npm install --save @ckeditor/ckeditor5-build-document-paged)
      // import Editor from '@ckeditor/ckeditor5-build-document-paged'
      
      // 中文包(语言包都在 build 版本中,注意 ckeditor5-build-xxx,xxx 需要替换为安装的编辑器包路径)
      import '@ckeditor/ckeditor5-build-classic/build/translations/zh-cn'
      export default {
        data () {
          return {
            // 编辑器对象
            editor: undefined,
            // 编辑内容
            editorData: '<p>Content of the editor</p>',
            // 编辑器配置
            editorConfig: {
              // 配置语言
              language: 'zh-cn'
              // 功能栏
              // toolbar: {
              //   items: ['Bold', 'Italic', 'Link' ...]
              // }
              // 更多的配置....
            }
          }
        },
        mounted () {
          // 初始化编辑器
          Editor.create(document.querySelector( '#editor' ), this.editorConfig).then(editor => {
            console.log('创建成功')
            // 记录编辑器对象
            this.editor = editor
            // 监听内容变化
            editor.model.document.on('change:data', (e) => {
              // 输出当前内容
              console.log(editor.getData(), e)
            })
            // 设置内容
            editor.setData(this.editorData)
          }).catch(error => {
            console.log('创建失败')
          })
        }
      }
      </script>
      
  • 方式二:

    • 安装 ckeditor 组件

      $ npm install --save @ckeditor/ckeditor5-vue2
      
    • main.js 中注册好 ckeditor 组件

      // 导入组件
      import CKEditor from '@ckeditor/ckeditor5-vue2'
      Vue.use( CKEditor )
      
    • 然后安装需要使用的编辑器,以 经典编辑器 举例

      $ npm install --save @ckeditor/ckeditor5-build-classic
      
    • 在页面中使用

      <template>
        <!-- ckeditor 父元素 -->
        <div class="editor-view">
          <!-- 编辑器 -->
          <ckeditor :editor="editor" v-model="editorData" :config="editorConfig" @ready="onReady"></ckeditor>
        </div>
      </template>
      
      <script>
      // 经典编辑器($ npm install --save @ckeditor/ckeditor5-build-classic)
      import Editor from '@ckeditor/ckeditor5-build-classic'
      
      // 中文包(语言包都在 build 版本中,注意 ckeditor5-build-xxx,xxx 需要替换为安装的编辑器包路径)
      import '@ckeditor/ckeditor5-build-classic/build/translations/zh-cn'
      export default {
        data () {
          return {
            // 编辑器对象
            editor: Editor,
            // 编辑内容
            editorData: '<p>Content of the editor</p>',
            // 编辑器配置
            editorConfig: {
              // 配置语言
              language: 'zh-cn'
              // 功能栏
              // toolbar: {
              //   items: ['Bold', 'Italic', 'Link' ...]
              // }
              // 更多的配置....
            }
          }
        },
        methods: {
          onReady (editor) {
            // 获得编辑器对象做处理
          }
        }
      }
      </script>
      

三、插件使用

四、常用功能文档列表

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
引用\[1\]:在Vue3中使用CKEditor插件的基本操作步骤如下:首先,你需要下载CKEditor的包并解压到一个文件夹中。你可以从官方网站上下载CKEditor 4的插件,下载地址为https://ckeditor.com/ckeditor-4/download/。根据你的需求选择合适的插件包进行下载。接下来,将解压好的包放到Vue项目的public文件夹中。然后,在项目的index.html文件中引入CKEditorJavaScript代码,代码如下: ```html <script src="ckeditor/ckeditor.js"></script> ``` 接下来,在需要使用CKEditor的地方引入ckeditor.vue组件,并在模板中使用该组件,代码如下: ```html <template> <div> <ckeditor @sendContent="getContent" :content="infoText"></ckeditor> </div> </template> ``` 在script标签中,你需要导入ckeditor.vue组件,并在组件的data选项中定义一个infoText变量来存储CKEditor的内容。你还需要定义一个getContent方法来获取CKEditor的内容,代码如下: ```javascript <script> import ckeditor from '../../../../../../../components/ckeditor.vue' export default { components: { ckeditor }, data() { return { infoText: '' } }, methods: { //获取富文本编辑器内容 getContent(val) { this.infoText = val } } } </script> ``` 通过以上步骤,你就可以在Vue3中使用CKEditor插件了。 #### 引用[.reference_title] - *1* [VUE3 引入富文本插件 CKEditor5](https://blog.csdn.net/ParkChanyelo/article/details/130008905)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [关于在vue-3 搭建vue项目中使用 CKEditor](https://blog.csdn.net/weixin_49279406/article/details/119923938)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值