[{"data":1,"prerenderedAt":127},["ShallowReactive",2],{"msfe-doc:\u002Fguide\u002Flifecycle":3},{"id":4,"title":5,"body":6,"description":113,"extension":114,"keywords":115,"locale":119,"meta":120,"navigation":121,"order":105,"path":122,"section":123,"seo":124,"stem":125,"__hash__":126},"docs\u002Fguide\u002Flifecycle.zh-CN.md","挂载与销毁",{"type":7,"value":8,"toc":103},"minimark",[9,14,26,30,33,40,43,46,62,65,76,80,83,90,93,96],[10,11,13],"h2",{"id":12},"原生-dom","原生 DOM",[15,16,17,21,22,25],"p",{},[18,19,20],"code",{},"createMsfeEditor()"," 可以直接用于普通网页。下面的 ",[18,23,24],{},"mount.ts"," 不依赖 Vue；Vue 文件只负责文档站的演示容器。",[27,28],"msfe-demo",{"name":29},"native\u002Feditor",[10,31,32],{"id":32},"生命周期边界",[15,34,35,36,39],{},"在 DOM 容器就绪后创建，在容器被移除前调用 ",[18,37,38],{},"destroy()","。销毁会释放编辑器插件、监听器和视图资源。不要在框架的每次 render 中重新创建实例。",[15,41,42],{},"一个实例对应一份独立内容、选区和历史。多个实例可以共享扩展定义，但各自的可变状态由实例持有。",[10,44,45],{"id":45},"切换文档",[15,47,48,51,52,55,56,61],{},[18,49,50],{},"replaceDocument(markdown, documentId)"," 显式换文档并重置历史与选区。需要合并同一份文档的外部修改时，使用带版本检查的 ",[18,53,54],{},"applyChanges()","，详见",[57,58,60],"a",{"href":59},"\u002Fguide\u002Fsaving","读取与保存","。",[10,63,64],{"id":64},"异步任务",[15,66,67,68,71,72,75],{},"自定义节点的 ",[18,69,70],{},"load(attrs, signal)"," 可以返回资源及 ",[18,73,74],{},"release()","。字段变化、卸载或销毁后，响应应遵守取消信号；过期结果不会成为当前节点的资源。持久业务请求由宿主应用管理。",[10,77,79],{"id":78},"dom-与宿主责任","DOM 与宿主责任",[15,81,82],{},"运行时管理 parent 内自己的编辑器节点；应用不要在每次框架更新时覆盖该区域的 innerHTML。多个编辑器使用不同 parent，并给辅助技术提供不同的 label。只共享不可变定义，不共享业务可变实例。",[15,84,85,86,89],{},"如果不用适配器而自行调用 ",[18,87,88],{},"createComponentHost()","，宿主也要管理该 host 的销毁。先结束编辑器及挂载组件，再释放组件宿主，避免孤立 Portal \u002F Teleport。",[10,91,92],{"id":92},"页面切换的完整顺序",[15,94,95],{},"保存或保留未保存内容 → 取消文档级业务请求 → 销毁实例 → 移除宿主容器。重新打开页面时，用保存的 Markdown 创建新实例。需要保留同一份文档历史的 UI 模式切换应调用 setMode，而不是销毁重建。",[15,97,98,99,61],{},"资源应归属 editor.scope、documentScope 或组件 scope 中最合适的一层；示例和取消策略见 ",[57,100,102],{"href":101},"\u002Fextensions\u002Fresources","异步资源",{"title":104,"searchDepth":105,"depth":105,"links":106},"",2,[107,108,109,110,111,112],{"id":12,"depth":105,"text":13},{"id":32,"depth":105,"text":32},{"id":45,"depth":105,"text":45},{"id":64,"depth":105,"text":64},{"id":78,"depth":105,"text":79},{"id":92,"depth":105,"text":92},"让应用拥有容器和存储，让编辑器拥有输入、选区与运行时资源。","md",[13,116,117,118],"destroy","多实例","生命周期","zh-CN",{},true,"\u002Fguide\u002Flifecycle","接入指南",{"title":5,"description":113},"guide\u002Flifecycle.zh-CN","LCexcNnBem7t16v_eO_jXcfGuqOTqRbFa7AAFqH4x_k",1793046311417]