[{"data":1,"prerenderedAt":659},["ShallowReactive",2],{"quirekit-doc:\u002Fclassic\u002Fconfiguration":3},{"id":4,"title":5,"body":6,"description":648,"extension":649,"keywords":650,"locale":651,"meta":652,"navigation":653,"order":311,"path":654,"section":655,"seo":656,"stem":657,"__hash__":658},"docs\u002Fclassic\u002Fconfiguration.zh-CN.md","配置与生命周期",{"type":7,"value":8,"toc":640},"minimark",[9,24,28,115,126,129,250,253,337,350,361,365,419,430,434,445,470,481,578,601,604,619,622,636],[10,11,12,13,18,19,23],"p",{},"先运行",[14,15,17],"a",{"href":16},"\u002Fclassic\u002Fquick-start","快速接入","的完整示例，再按自己的产品修改配置。Vue 应用使用 ",[20,21,22],"code",{},"\u002Fvue"," 入口，共享应用已有的 Vue runtime。",[25,26,27],"h2",{"id":27},"创建时确定的内容",[29,30,31,44],"table",{},[32,33,34],"thead",{},[35,36,37,41],"tr",{},[38,39,40],"th",{},"配置",[38,42,43],{},"用途",[45,46,47,61,71,81,91,101],"tbody",{},[35,48,49,55],{},[50,51,52],"td",{},[20,53,54],{},"element",[50,56,57,58],{},"编辑器宿主；暂不提供时可稍后 ",[20,59,60],{},"mount()",[35,62,63,68],{},[50,64,65],{},[20,66,67],{},"document",[50,69,70],{},"初始规范正文，不是界面语言字典",[35,72,73,78],{},[50,74,75],{},[20,76,77],{},"preset",[50,79,80],{},"本次产品采用的文档模型、视图与默认插件",[35,82,83,88],{},[50,84,85],{},[20,86,87],{},"plugins",[50,89,90],{},"产品功能区、侧栏、动作和文件服务",[35,92,93,98],{},[50,94,95],{},[20,96,97],{},"extensions",[50,99,100],{},"追加普通 Core 扩展；必须与模型和 View 相容",[35,102,103,112],{},[50,104,105,108,109],{},[20,106,107],{},"media","、",[20,110,111],{},"host",[50,113,114],{},"媒体持久化与宿主资源服务；按创建时合同接入",[10,116,117,118,120,121,125],{},"不要在每次界面渲染时重新创建实例，也不要为更新按钮状态反复传入 ",[20,119,67],{},"。模型与 Schema 的选择见",[14,122,124],{"href":123},"\u002Fbuild\u002Fmodel","文档模型","。",[25,127,128],{"id":128},"界面与工作区",[29,130,131,143],{},[32,132,133],{},[35,134,135,137,140],{},[38,136,40],{},[38,138,139],{},"使用方法",[38,141,142],{},"默认与边界",[45,144,145,164,180,193,211,224,237],{},[35,146,147,152,161],{},[50,148,149],{},[20,150,151],{},"locale",[50,153,154,157,158],{},[20,155,156],{},"'zh-CN'"," 或 ",[20,159,160],{},"'en'",[50,162,163],{},"默认中文，只改变界面，不翻译已有正文",[35,165,166,171,177],{},[50,167,168],{},[20,169,170],{},"editable",[50,172,173,176],{},[20,174,175],{},"false"," 切换到只读输入",[50,178,179],{},"默认 true；程序写入还要检查应用权限",[35,181,182,187,190],{},[50,183,184],{},[20,185,186],{},"theme",[50,188,189],{},"传完整 QuireKit theme",[50,191,192],{},"实例优先于 preset，不是只传一个主色",[35,194,195,200,208],{},[50,196,197],{},[20,198,199],{},"view",[50,201,202,157,205],{},[20,203,204],{},"{ backend: 'canvas' }",[20,206,207],{},"'svg'",[50,209,210],{},"默认 Canvas；产品更新后端会重建 Core",[35,212,213,218,221],{},[50,214,215],{},[20,216,217],{},"shell",[50,219,220],{},"显隐菜单、功能区、工具栏、标尺、侧栏、状态栏",[50,222,223],{},"在预设默认值上逐字段覆盖",[35,225,226,231,234],{},[50,227,228],{},[20,229,230],{},"ui",[50,232,233],{},"toolbar、contextMenu、selectionPopup 的 contribution ID 列表或 false",[50,235,236],{},"决定已有控件的组成；不创建新的正文命令",[35,238,239,244,247],{},[50,240,241],{},[20,242,243],{},"webFonts",[50,245,246],{},"字体库配置，或 false",[50,248,249],{},"不提供时使用默认外部字体库配置；关闭后应用仍需准备正文使用的字体",[10,251,252],{},"例如嵌入正文区域时，可以保留功能区，关闭紧凑工具栏并让窄窗口使用收纳菜单：",[254,255,261],"pre",{"className":256,"code":257,"filename":258,"language":259,"meta":260,"style":260},"language-ts shiki shiki-themes github-light github-light github-dark","shell: { toolbar: false, ribbon: true, ribbonOverflow: 'collapse' },\nui: { selectionPopup: false },\nwebFonts: false,\n","创建选项中的界面配置","ts","",[20,262,263,309,325],{"__ignoreMap":260},[264,265,268,271,275,278,281,284,287,290,292,295,297,300,302,306],"span",{"class":266,"line":267},"line",1,[264,269,217],{"class":270},"sgQzM",[264,272,274],{"class":273},"sVPnS",": { ",[264,276,277],{"class":270},"toolbar",[264,279,280],{"class":273},": ",[264,282,175],{"class":283},"sUNQB",[264,285,286],{"class":273},", ",[264,288,289],{"class":270},"ribbon",[264,291,280],{"class":273},[264,293,294],{"class":283},"true",[264,296,286],{"class":273},[264,298,299],{"class":270},"ribbonOverflow",[264,301,280],{"class":273},[264,303,305],{"class":304},"s-HEn","'collapse'",[264,307,308],{"class":273}," },\n",[264,310,312,314,316,319,321,323],{"class":266,"line":311},2,[264,313,230],{"class":270},[264,315,274],{"class":273},[264,317,318],{"class":270},"selectionPopup",[264,320,280],{"class":273},[264,322,175],{"class":283},[264,324,308],{"class":273},[264,326,328,330,332,334],{"class":266,"line":327},3,[264,329,243],{"class":270},[264,331,280],{"class":273},[264,333,175],{"class":283},[264,335,336],{"class":273},",\n",[10,338,339,341,342,344,345,349],{},[20,340,217],{}," 控制整个区域；",[20,343,230],{}," 控制相应区域中的已注册项目。需要新动作或面板时，先通过",[14,346,348],{"href":347},"\u002Fclassic\u002Fplugins","产品插件","安装 contribution，再使用它的 ID 配置。不要把界面显隐当成写权限。",[10,351,352,353,356,357,360],{},"同时加载 ",[20,354,355],{},"@quirekit\u002Fclassic-editor\u002Fstyles.css"," 和所用 Word 包的 ",[20,358,359],{},"@quirekit\u002Fclassic-docx\u002Fstyles.css","。宿主提供实际高度和可用宽度，公开样式负责产品组件、绘制层和浮层定位。",[25,362,364],{"id":363},"用-ui-控制器调整当前工作区","用 UI 控制器调整当前工作区",[254,366,369],{"className":256,"code":367,"filename":368,"language":259,"meta":260,"style":260},"instance.ui.setZoomMode('fit-width')\ninstance.ui.setRulerVisible(false)\ninstance.ui.setSidebarVisible('right', false)\n","不重建 Core 的界面操作",[20,370,371,388,401],{"__ignoreMap":260},[264,372,373,376,379,382,385],{"class":266,"line":267},[264,374,375],{"class":273},"instance.ui.",[264,377,378],{"class":270},"setZoomMode",[264,380,381],{"class":273},"(",[264,383,384],{"class":304},"'fit-width'",[264,386,387],{"class":273},")\n",[264,389,390,392,395,397,399],{"class":266,"line":311},[264,391,375],{"class":273},[264,393,394],{"class":270},"setRulerVisible",[264,396,381],{"class":273},[264,398,175],{"class":283},[264,400,387],{"class":273},[264,402,403,405,408,410,413,415,417],{"class":266,"line":327},[264,404,375],{"class":273},[264,406,407],{"class":270},"setSidebarVisible",[264,409,381],{"class":273},[264,411,412],{"class":304},"'right'",[264,414,286],{"class":273},[264,416,175],{"class":283},[264,418,387],{"class":273},[10,420,421,422,425,426,429],{},"这些操作不修改正文，也不清空历史。打开已安装的面板用 ",[20,423,424],{},"openSidebarPanel(side, panelId)","；监听 UI 状态用 ",[20,427,428],{},"subscribe(listener)","，并保留它返回的释放函数。",[25,431,433],{"id":432},"哪些更新会重建-core","哪些更新会重建 Core",[10,435,436,437,108,439,441,442,444],{},"单独更新 ",[20,438,151],{},[20,440,170],{},"，以及内置普通\u002FWord 预设的 ",[20,443,186],{},"，会保留同一个 Core、选区、storage、监听和撤销历史。语言不翻译正文，主题只刷新界面和派生绘制颜色；只读更新会取消尚未提交的导入。",[10,446,447,448,108,450,108,452,108,454,108,456,108,458,108,461,108,463,465,466,469],{},"传入 ",[20,449,67],{},[20,451,77],{},[20,453,87],{},[20,455,97],{},[20,457,199],{},[20,459,460],{},"features",[20,462,217],{},[20,464,230],{}," 或运行时结构设置时，仍会卸载并重建 Core\u002FView。正文默认保留，旧 Core 和历史结束；更新后重新读取 ",[20,467,468],{},"instance.editor","。即使与 locale 一起传入也按结构更新处理。配置确实改变时再调用，不能每次按键或 Vue 渲染都更新。",[10,471,472,473,476,477,125],{},"自定义 preset 若要保留会话切主题，需要实现 ",[20,474,475],{},"updatePresentation(context)","，刷新自己拥有的非持久呈现配置，不能修改 Schema 或正文。未实现时，改变主题继续重建。自定义预设接入见",[14,478,480],{"href":479},"\u002Fclassic\u002Fapi","Classic API",[29,482,483,493],{},[32,484,485],{},[35,486,487,490],{},[38,488,489],{},"更新字段",[38,491,492],{},"合并规则",[45,494,495,504,515,534,547,564],{},[35,496,497,501],{},[50,498,499],{},[20,500,67],{},[50,502,503],{},"显式传入时替换，否则保留当前正文",[35,505,506,512],{},[50,507,508,108,510],{},[20,509,87],{},[20,511,97],{},[50,513,514],{},"替换实例级数组；保留项也要放在新数组里，preset 插件仍独立存在",[35,516,517,531],{},[50,518,519,108,521,108,523,108,525,108,528],{},[20,520,460],{},[20,522,217],{},[20,524,199],{},[20,526,527],{},"canvasRuntime",[20,529,530],{},"svgRuntime",[50,532,533],{},"在当前配置上逐字段浅合并",[35,535,536,540],{},[50,537,538],{},[20,539,230],{},[50,541,542,543,546],{},"按 surface 更新；某个 surface 的 ",[20,544,545],{},"items"," 是最终列表，false 禁用",[35,548,549,561],{},[50,550,551,108,553,108,555,108,557,108,559],{},[20,552,77],{},[20,554,186],{},[20,556,151],{},[20,558,170],{},[20,560,243],{},[50,562,563],{},"使用传入的新值",[35,565,566,575],{},[50,567,568,108,570,108,572],{},[20,569,107],{},[20,571,111],{},[20,573,574],{},"surfaceMode",[50,576,577],{},"不属于 update 选项；更换这些服务时创建新产品实例",[10,579,580,581,584,585,588,589,593,594,597,598,125],{},"需要持续观察正文时，用插件 ",[20,582,583],{},"onMount"," \u002F ",[20,586,587],{},"onUnmount"," 绑定和清理当前 Core 的订阅。不要只在第一次创建后订阅旧实例；",[14,590,592],{"href":591},"\u002Fclassic\u002Ffiles","保存教程","给出了可复用例程。插件的 ",[20,595,596],{},"onUpdate"," 是界面更新钩子，也会因选区等变化触发，不等同于 Core 的正文 ",[20,599,600],{},"update",[25,602,603],{"id":603},"离开页面与重新挂载",[10,605,606,607,610,611,614,615,618],{},"动态导入返回后，先检查宿主是否仍存在。",[20,608,609],{},"unmount()"," 释放产品壳和 Core，保留正文供下次 ",[20,612,613],{},"mount(element)"," 使用；这也会丢失该 Core 的历史。",[20,616,617],{},"destroy()"," 最终清理产品资源，离开拥有实例的页面时调用，之后不再挂载。内置导入任务在卸载、销毁或目标正文变化时失效；任意自定义网络请求仍由其拥有者取消。",[25,620,621],{"id":621},"保存和资源",[10,623,624,625,628,629,633,634,125],{},"JSON 下载是一次显式快照，不等于自动保存。应用需要保存规范正文及对应媒体资源，处理保存失败和未保存状态，见",[14,626,627],{"href":591},"Classic 保存与打开","。完整选项、实例方法与 UI 控制器见",[14,630,632],{"href":631},"\u002Fclassic\u002Freference","实例与配置参考","；动作、面板和服务见 ",[14,635,480],{"href":479},[637,638,639],"style",{},"html pre.shiki code .sgQzM, html code.shiki .sgQzM{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVPnS, html code.shiki .sVPnS{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sUNQB, html code.shiki .sUNQB{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s-HEn, html code.shiki .s-HEn{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF}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":260,"searchDepth":311,"depth":311,"links":641},[642,643,644,645,646,647],{"id":27,"depth":311,"text":27},{"id":128,"depth":311,"text":128},{"id":363,"depth":311,"text":364},{"id":432,"depth":311,"text":433},{"id":603,"depth":311,"text":603},{"id":621,"depth":311,"text":621},"区分初始正文、产品设置和宿主服务，正确更新与销毁编辑器。","md",null,"zh-CN",{},true,"\u002Fclassic\u002Fconfiguration","Classic 入门",{"title":5,"description":648},"classic\u002Fconfiguration.zh-CN","PKyKPg4bMBzioEAk4vDgZs_LJuL-UpddGt8Q7tbHtsE",1793045224273]