插件

已经了解如何重写 Slate 编辑器的行为。这些重写可以打包为“插件”,以便复用,测试和共享。这是 Slate 架构中最强大的方面。

插件仅仅是函数,接受一个 Editor 对象,以某种方式增强并返回。

例如,标记图像节点为 “void”:

const withImages = editor => {
  const { isVoid } = editor

  editor.isVoid = element => {
    return element.type === 'image' ? true : isVoid(element)
  }

  return editor
}

然后使用插件,只需:

import { createEditor } from 'slate'

const editor = withImages(createEditor())

插件组合模型使得 Slate 非常容易扩展!

助手函数

除了插件函数之外,还可以公开与插件一起使用的助手函数。例如:

import { Editor, Element } from 'slate'

const MyEditor = {
  ...Editor,
  insertImage(editor, url) {
    const element = { type: 'image', url, children: [{ text: '' }] }
    Transforms.insertNodes(editor, element)
  },
}

const MyElement = {
  ...Element,
  isImageElement(value) {
    return Element.isElement(element) && element.type === 'image'
  },
}

然后就可以在任何地方使用 MyEditorMyElement,并且在一个地方访问所有助手。

results matching ""

    No results matching ""