在 Vue 中创建 Editor 组件

2501_93304951 2025-09-06 23:52:09

这里以 Vue 3 + Composition API 为例,封装一个简单的 Editor.vue 组件。

代码语言:js

AI代码解释

<template>
  <div>
    <!-- 编辑器容器 -->
    <div id="editorjs"></div>

    <!-- 保存按钮 -->
    <button @click="saveData">保存内容</button>
  </div>
</template>

<script setup>
import { onMounted, onBeforeUnmount } from "vue";
import EditorJS from "@editorjs/editorjs";
import Header from "@editorjs/header";
import List from "@editorjs/list";
import Paragraph from "@editorjs/paragraph";

let editor = null;

onMounted(() => {
  editor = new EditorJS({
    holder: "editorjs", // 容器 ID
    autofocus: true,
    placeholder: "开始书写你的内容...",
    tools: {
      header: Header,
      list: List,
      paragraph: {
        class: Paragraph,
        inlineToolbar: true
      }
    }
  });
});

// 组件卸载时销毁编辑器
onBeforeUnmount(() => {
  if (editor) {
    editor.destroy();
    editor = null;
  }
});

// 保存方法
const saveData = async () => {
  try {
    const outputData = await editor.save();
    console.log("编辑内容:", outputData);
    alert(JSON.stringify(outputData, null, 2));
  } catch (error) {
    console.error("保存失败:", error);
  }
};
</script>

这段代码完成了:

  1. 初始化 Editor.js 实例,并指定容器 #editorjs
  2. 配置了 headerlistparagraph 三个基础工具。
  3. 提供保存按钮,输出 JSON 格式数据。
...全文
151 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

43,738

社区成员

发帖
与我相关
我的任务
社区描述
HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式.被认为是互联网的核心技术之一。
社区管理员
  • HTML5社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧