我正试图为atom编写一个插件,但我采用的方法肯定是错误的。我试图将新的类添加到编辑器的某些元素中,这在最初是有效的,但在滚动之后,DOM会被重写,类也会被删除。将更改持久化到编辑器DOM的正确方法是什么?
function manipulateEditor({shadowRoot}) {
const elements = shadowRoot.querySelectorAll('.brace');
for (let i = 0; i < elements.length; i++) {
let {classList} = elements[i];
classList.add('my-class');
}
}
atom.workspace.observeTextEditors(editor => {
const view = atom.views.getView(editor);
const manipulate = manipulateEditor.bind(null, view);
editor.onDidStopChanging(manipulate);
manipulate();
}
看起来我应该使用装饰API。
https://discuss.atom.io/t/keep-mutated-dom-on-scroll/23553/2