[{"data":1,"prerenderedAt":272},["ShallowReactive",2],{"msfe-doc:\u002Fguide\u002Fmodes":3},{"id":4,"title":5,"body":6,"description":261,"extension":262,"keywords":263,"locale":265,"meta":266,"navigation":134,"order":131,"path":267,"section":268,"seo":269,"stem":270,"__hash__":271},"docs\u002Fguide\u002Fmodes.zh-CN.md","模式与只读",{"type":7,"value":8,"toc":254},"minimark",[9,13,64,68,72,75,81,157,160,167,170,225,236,239,242,250],[10,11,12],"h2",{"id":12},"三种模式",[14,15,16,29],"table",{},[17,18,19],"thead",{},[20,21,22,26],"tr",{},[23,24,25],"th",{},"模式",[23,27,28],{},"使用场景",[30,31,32,44,54],"tbody",{},[20,33,34,41],{},[35,36,37],"td",{},[38,39,40],"code",{},"source",[35,42,43],{},"显示完整 Markdown，使用代码编辑器式的输入体验",[20,45,46,51],{},[35,47,48],{},[38,49,50],{},"live",[35,52,53],{},"在源码上显示阅读呈现，进入相关范围时显露语法",[20,55,56,61],{},[35,57,58],{},[38,59,60],{},"locked",[35,62,63],{},"阅读、选择和复制，关闭正文编辑",[65,66,67],"p",{},"修改一段文字，切换模式，再回到「实时预览」撤销，观察它们如何共用同一份文档。",[69,70],"msfe-demo",{"name":71},"basic\u002Feditor",[10,73,74],{"id":74},"独立只读权限",[65,76,77,80],{},[38,78,79],{},"setReadOnly(true)"," 可以使源码或实时预览模式只读。它与呈现模式是不同维度：例如保留完整源码显示，同时禁止正文修改。",[82,83,88],"pre",{"className":84,"code":85,"language":86,"meta":87,"style":87},"language-ts shiki shiki-themes github-light github-light github-dark","editor.setMode('source')\neditor.setReadOnly(true)\n\n\u002F\u002F 恢复源码模式的编辑权限。\neditor.setReadOnly(false)\n","ts","",[38,89,90,113,129,136,143],{"__ignoreMap":87},[91,92,95,99,103,106,110],"span",{"class":93,"line":94},"line",1,[91,96,98],{"class":97},"sVPnS","editor.",[91,100,102],{"class":101},"sgQzM","setMode",[91,104,105],{"class":97},"(",[91,107,109],{"class":108},"s-HEn","'source'",[91,111,112],{"class":97},")\n",[91,114,116,118,121,123,127],{"class":93,"line":115},2,[91,117,98],{"class":97},[91,119,120],{"class":101},"setReadOnly",[91,122,105],{"class":97},[91,124,126],{"class":125},"sUNQB","true",[91,128,112],{"class":97},[91,130,132],{"class":93,"line":131},3,[91,133,135],{"emptyLinePlaceholder":134},true,"\n",[91,137,139],{"class":93,"line":138},4,[91,140,142],{"class":141},"sqmzS","\u002F\u002F 恢复源码模式的编辑权限。\n",[91,144,146,148,150,152,155],{"class":93,"line":145},5,[91,147,98],{"class":97},[91,149,120],{"class":101},[91,151,105],{"class":97},[91,153,154],{"class":125},"false",[91,156,112],{"class":97},[10,158,159],{"id":159},"输入与焦点",[65,161,162,163,166],{},"模式切换不重建实例，也不主动抢占工具栏焦点。组合输入期间会延后呈现切换，避免中断输入法。需要让用户继续输入时，宿主可以显式调用 ",[38,164,165],{},"focus()","。",[10,168,169],{"id":169},"呈现与权限是两条轴",[14,171,172,185],{},[17,173,174],{},[20,175,176,179,182],{},[23,177,178],{},"mode",[23,180,181],{},"readOnly",[23,183,184],{},"用户行为",[30,186,187,196,205,215],{},[20,188,189,191,193],{},[35,190,40],{},[35,192,154],{},[35,194,195],{},"编辑原始语法",[20,197,198,200,202],{},[35,199,50],{},[35,201,154],{},[35,203,204],{},"原生编辑与非活动预览并存",[20,206,207,210,212],{},[35,208,209],{},"source \u002F live",[35,211,126],{},[35,213,214],{},"保留该呈现，禁止写入",[20,216,217,219,222],{},[35,218,60],{},[35,220,221],{},"任意",[35,223,224],{},"阅读呈现与复制，禁止写入",[65,226,227,228,231,232,235],{},"从 locked 返回 live 后，显式 readOnly 仍按宿主设置生效。",[38,229,230],{},"setTheme()"," 不改变这两条轴。组合输入期间模式切换可能延后，",[38,233,234],{},"editor.mode"," 表示当前实际模式，不是最后一次请求值。",[10,237,238],{"id":238},"自定义控件的配合",[65,240,241],{},"NodeView 与预览 props 中的 readOnly 是实际权限。折叠、查找、复制等源码中立动作可以继续；语言、字段、替换和删除操作必须尊重写保护。最终命令仍会检查，不应靠 disabled 属性作为唯一权限控制。",[65,243,244,245,166],{},"自定义投影默认只出现在 live \u002F locked；进入 source 应能读到原始语法。应用若提供额外模式 UI，需要清楚显示当前实际状态并覆盖 IME 延后切换。见 ",[246,247,249],"a",{"href":248},"\u002Fextensions\u002Fprojections","投影层",[251,252,253],"style",{},"html pre.shiki code .sVPnS, html code.shiki .sVPnS{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sgQzM, html code.shiki .sgQzM{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s-HEn, html code.shiki .s-HEn{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sUNQB, html code.shiki .sUNQB{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sqmzS, html code.shiki .sqmzS{--shiki-default:#6A737D;--shiki-light:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":87,"searchDepth":115,"depth":115,"links":255},[256,257,258,259,260],{"id":12,"depth":115,"text":12},{"id":74,"depth":115,"text":74},{"id":159,"depth":115,"text":159},{"id":169,"depth":115,"text":169},{"id":238,"depth":115,"text":238},"在同一编辑器实例中切换源码与阅读呈现，保持内容和历史连续。","md",[40,50,60,264,25],"readonly","zh-CN",{},"\u002Fguide\u002Fmodes","接入指南",{"title":5,"description":261},"guide\u002Fmodes.zh-CN","ilcWfGDRm6GBrB6RxuaQRy-UoLjNpbEHWG0IV5VtLzg",1793046311418]