在 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 格式数据。
...全文
52 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

43,708

社区成员

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

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