Concepts
Plugins
3 min
vous avez déjà vu comment les comportements des éditeurs slate peuvent être remplacés ces remplacements peuvent également être regroupés en "plugins" pour être réutilisés, testés et partagés c'est l'un des aspects les plus puissants de l'architecture de slate un plugin est simplement une fonction qui prend un éditeur et le retourne après l'avoir augmenté d'une certaine manière par exemple, un plugin qui marque les nœuds d'image comme "void" const withimages = editor => { const { isvoid } = editor editor isvoid = element => { return element type === 'image' ? true isvoid(element) } return editor } et ensuite, pour utiliser le plugin, simplement import { createeditor } from 'slate' const editor = withimages(createeditor()) ce modèle de composition de plugin rend slate extrêmement facile à étendre ! fonctions d'aide en plus des fonctions de plugin, vous voudrez peut être exposer des fonctions d'aide qui sont utilisées avec vos plugins par exemple 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' }, } ensuite, vous pouvez utiliser myeditor et myelement partout et avoir accès à tous vos helpers en un seul endroit
