[{"data":1,"prerenderedAt":1498},["ShallowReactive",2],{"$fen922M9aBBBGS7gEr37q12a4sAhxXmwCENBD1e0zskM":3,"\u002Fdocs\u002Fmanual\u002Fshell\u002Froot-context":278,"\u002Fdocs\u002Fmanual\u002Fshell\u002Froot-context-surround":1493},[4,22,99,167,189,267],{"title":5,"titleTemplate":6,"icon":7,"redirect":8,"path":9,"stem":10,"children":11,"page":21},"起步指南",null,"i-lucide:rocket","\u002Fdocs\u002Fguide\u002Fintroduction","\u002Fdocs\u002Fguide","docs\u002F1.guide",[12,16],{"title":13,"path":8,"stem":14,"titleTemplate":6,"icon":15},"介绍","docs\u002F1.guide\u002F01.introduction","i-lucide:bot",{"title":17,"path":18,"stem":19,"titleTemplate":6,"icon":20},"安装","\u002Fdocs\u002Fguide\u002Finstallation","docs\u002F1.guide\u002F02.installation","i-lucide:download",false,{"title":23,"path":24,"stem":25,"children":26,"titleTemplate":6,"icon":29},"使用手册","\u002Fdocs\u002Fmanual","docs\u002F2.manual\u002F00.index",[27,30,35,40,57,78],{"title":23,"path":24,"stem":25,"titleTemplate":28,"icon":29},"%s | Oiyo","i-lucide:book-open-check",{"title":31,"path":32,"stem":33,"titleTemplate":6,"icon":34},"工程接入","\u002Fdocs\u002Fmanual\u002Fengineering","docs\u002F2.manual\u002F01.engineering","i-lucide:plug",{"title":36,"path":37,"stem":38,"titleTemplate":6,"icon":39},"配置系统","\u002Fdocs\u002Fmanual\u002Fconfiguration","docs\u002F2.manual\u002F02.configuration","i-lucide:sliders-horizontal",{"title":41,"titleTemplate":6,"defaultOpen":42,"icon":43,"path":44,"stem":45,"children":46,"page":21},"扫描导入",true,"i-lucide:scan-line","\u002Fdocs\u002Fmanual\u002Fscan","docs\u002F2.manual\u002F03.scan",[47,52],{"title":48,"path":49,"stem":50,"titleTemplate":6,"icon":51},"API 导入","\u002Fdocs\u002Fmanual\u002Fscan\u002Fapi","docs\u002F2.manual\u002F03.scan\u002F01.api","i-lucide:import",{"title":53,"path":54,"stem":55,"titleTemplate":6,"icon":56},"组件注册","\u002Fdocs\u002Fmanual\u002Fscan\u002Fcomponents","docs\u002F2.manual\u002F03.scan\u002F02.components","i-lucide:blocks",{"title":58,"titleTemplate":6,"defaultOpen":42,"icon":59,"path":60,"stem":61,"children":62,"page":21},"路由系统","i-lucide:map","\u002Fdocs\u002Fmanual\u002Fpage","docs\u002F2.manual\u002F04.page",[63,68,73],{"title":64,"path":65,"stem":66,"titleTemplate":6,"icon":67},"页面注册","\u002Fdocs\u002Fmanual\u002Fpage\u002Fregister","docs\u002F2.manual\u002F04.page\u002F01.register","i-lucide:file-box",{"title":69,"path":70,"stem":71,"titleTemplate":6,"icon":72},"页面元信息","\u002Fdocs\u002Fmanual\u002Fpage\u002Fmeta","docs\u002F2.manual\u002F04.page\u002F02.meta","i-lucide:file-cog",{"title":74,"path":75,"stem":76,"titleTemplate":6,"icon":77},"全局页面配置","\u002Fdocs\u002Fmanual\u002Fpage\u002Fconfig","docs\u002F2.manual\u002F04.page\u002F03.config","i-lucide:palette",{"title":79,"titleTemplate":6,"defaultOpen":42,"icon":80,"path":81,"stem":82,"children":83,"page":21},"视图结构","i-lucide:panels-top-left","\u002Fdocs\u002Fmanual\u002Fshell","docs\u002F2.manual\u002F05.shell",[84,89,94],{"title":85,"path":86,"stem":87,"titleTemplate":6,"icon":88},"应用骨架","\u002Fdocs\u002Fmanual\u002Fshell\u002Fapp-shell","docs\u002F2.manual\u002F05.shell\u002F01.app-shell","i-lucide:app-window",{"title":90,"path":91,"stem":92,"titleTemplate":6,"icon":93},"根上下文","\u002Fdocs\u002Fmanual\u002Fshell\u002Froot-context","docs\u002F2.manual\u002F05.shell\u002F02.root-context","i-lucide:network",{"title":95,"path":96,"stem":97,"titleTemplate":6,"icon":98},"布局系统","\u002Fdocs\u002Fmanual\u002Fshell\u002Flayout","docs\u002F2.manual\u002F05.shell\u002F03.layout","i-lucide:layout-template",{"title":100,"path":101,"stem":102,"children":103,"titleTemplate":6,"icon":166},"项目结构","\u002Fdocs\u002Fstructure","docs\u002F3.structure\u002F0.index",[104,106,111,152,156,161],{"title":100,"path":101,"stem":102,"titleTemplate":28,"icon":105},"i-lucide-layers",{"title":107,"path":108,"stem":109,"titleTemplate":6,"icon":110},".oiyo","\u002Fdocs\u002Fstructure\u002Foiyo","docs\u002F3.structure\u002F1.oiyo","i-catppuccin:folder-temp",{"title":112,"titleTemplate":6,"defaultOpen":42,"icon":113,"path":114,"stem":115,"children":116,"page":21},"src","i-catppuccin:folder-src","\u002Fdocs\u002Fstructure\u002Fsrc","docs\u002F3.structure\u002F1.src",[117,122,127,132,137,142,147],{"title":118,"path":119,"stem":120,"titleTemplate":6,"icon":121},"components","\u002Fdocs\u002Fstructure\u002Fsrc\u002Fcomponents","docs\u002F3.structure\u002F1.src\u002F1.components","i-catppuccin:folder-components",{"title":123,"path":124,"stem":125,"titleTemplate":6,"icon":126},"composables","\u002Fdocs\u002Fstructure\u002Fsrc\u002Fcomposables","docs\u002F3.structure\u002F1.src\u002F1.composables","i-catppuccin:folder-composables",{"title":128,"path":129,"stem":130,"titleTemplate":6,"icon":131},"layouts","\u002Fdocs\u002Fstructure\u002Fsrc\u002Flayouts","docs\u002F3.structure\u002F1.src\u002F1.layouts","i-catppuccin:folder-layouts",{"title":133,"path":134,"stem":135,"titleTemplate":6,"icon":136},"packages","\u002Fdocs\u002Fstructure\u002Fsrc\u002Fpackages","docs\u002F3.structure\u002F1.src\u002F1.packages","i-catppuccin:folder-packages",{"title":138,"path":139,"stem":140,"titleTemplate":6,"icon":141},"pages","\u002Fdocs\u002Fstructure\u002Fsrc\u002Fpages","docs\u002F3.structure\u002F1.src\u002F1.pages","i-catppuccin:folder-views",{"title":143,"path":144,"stem":145,"titleTemplate":6,"icon":146},"App.vue","\u002Fdocs\u002Fstructure\u002Fsrc\u002Fapp","docs\u002F3.structure\u002F1.src\u002F2.app","i-catppuccin:vue",{"title":148,"path":149,"stem":150,"titleTemplate":6,"icon":151},"pages.config.ts","\u002Fdocs\u002Fstructure\u002Fsrc\u002Fpages-config","docs\u002F3.structure\u002F1.src\u002F3.pages-config","i-catppuccin:typescript",{"title":153,"path":154,"stem":155,"titleTemplate":6,"icon":151},"oiyo.config.ts","\u002Fdocs\u002Fstructure\u002Foiyo-config","docs\u002F3.structure\u002F3.oiyo-config",{"title":157,"path":158,"stem":159,"titleTemplate":6,"icon":160},"package.json","\u002Fdocs\u002Fstructure\u002Fpackage","docs\u002F3.structure\u002F3.package","i-catppuccin:package-json",{"title":162,"path":163,"stem":164,"titleTemplate":6,"icon":165},"tsconfig.json","\u002Fdocs\u002Fstructure\u002Ftsconfig","docs\u002F3.structure\u002F3.tsconfig","i-catppuccin:typescript-config","i-lucide:layers",{"title":168,"titleTemplate":6,"icon":169,"redirect":170,"path":171,"stem":172,"children":173,"page":21},"核心概念","i-lucide:leaf","\u002Fdocs\u002Fconcept\u002Fapp","\u002Fdocs\u002Fconcept","docs\u002F4.concept",[174,178,182,185],{"title":175,"path":170,"stem":176,"titleTemplate":6,"icon":177},"根部视图","docs\u002F4.concept\u002F01.app","i-lucide:route",{"title":179,"path":180,"stem":181,"titleTemplate":6,"icon":59},"自动路由","\u002Fdocs\u002Fconcept\u002Froute","docs\u002F4.concept\u002F02.route",{"title":95,"path":183,"stem":184,"titleTemplate":6,"icon":98},"\u002Fdocs\u002Fconcept\u002Flayout","docs\u002F4.concept\u002F03.layout",{"title":186,"path":187,"stem":188,"titleTemplate":6,"icon":43},"自动导入","\u002Fdocs\u002Fconcept\u002Fauto-imports","docs\u002F4.concept\u002F04.auto-imports",{"title":190,"path":191,"stem":192,"children":193,"titleTemplate":6,"icon":266},"API","\u002Fdocs\u002Fapi","docs\u002F5.api\u002F00.index",[194,196,210,220,234,248],{"title":195,"path":191,"stem":192,"titleTemplate":28},"API 参考",{"title":197,"titleTemplate":6,"defaultOpen":42,"icon":198,"path":199,"stem":200,"children":201,"page":21},"配置","i-lucide:settings","\u002Fdocs\u002Fapi\u002Fconfig","docs\u002F5.api\u002F01.config",[202,206],{"title":203,"path":204,"stem":205,"titleTemplate":6},"defineOiyoConfig","\u002Fdocs\u002Fapi\u002Fconfig\u002Fdefine-oiyo-config","docs\u002F5.api\u002F01.config\u002F01.define-oiyo-config",{"title":207,"path":208,"stem":209,"titleTemplate":6},"definePagesConfig","\u002Fdocs\u002Fapi\u002Fconfig\u002Fdefine-pages-config","docs\u002F5.api\u002F01.config\u002F02.define-pages-config",{"title":211,"titleTemplate":6,"defaultOpen":42,"icon":212,"path":213,"stem":214,"children":215,"page":21},"运行时","i-lucide:shrub","\u002Fdocs\u002Fapi\u002Fruntime","docs\u002F5.api\u002F02.runtime",[216],{"title":217,"path":218,"stem":219,"titleTemplate":6},"Vue \u002F UniApp","\u002Fdocs\u002Fapi\u002Fruntime\u002Freference","docs\u002F5.api\u002F02.runtime\u002F01.reference",{"title":221,"titleTemplate":6,"defaultOpen":42,"icon":222,"path":223,"stem":224,"children":225,"page":21},"宏","i-lucide:wand","\u002Fdocs\u002Fapi\u002Fmacro","docs\u002F5.api\u002F04.macro",[226,230],{"title":227,"path":228,"stem":229,"titleTemplate":6},"defineRootContext","\u002Fdocs\u002Fapi\u002Fmacro\u002Fdefine-root-context","docs\u002F5.api\u002F04.macro\u002F01.define-root-context",{"title":231,"path":232,"stem":233,"titleTemplate":6},"definePageMeta","\u002Fdocs\u002Fapi\u002Fmacro\u002Fdefine-page-meta","docs\u002F5.api\u002F04.macro\u002F02.define-page-meta",{"title":235,"titleTemplate":6,"defaultOpen":42,"icon":236,"path":237,"stem":238,"children":239,"page":21},"组件","i-lucide:component","\u002Fdocs\u002Fapi\u002Fcomponents","docs\u002F5.api\u002F05.components",[240,244],{"title":241,"path":242,"stem":243,"titleTemplate":6},"\u003COiyoPage>","\u002Fdocs\u002Fapi\u002Fcomponents\u002Foiyo-page","docs\u002F5.api\u002F05.components\u002F01.oiyo-page",{"title":245,"path":246,"stem":247,"titleTemplate":6},"\u003COiyoLayout>","\u002Fdocs\u002Fapi\u002Fcomponents\u002Foiyo-layout","docs\u002F5.api\u002F05.components\u002F02.oiyo-layout",{"title":249,"titleTemplate":6,"defaultOpen":42,"icon":250,"path":251,"stem":252,"children":253,"page":21},"命令","i-lucide:command","\u002Fdocs\u002Fapi\u002Fcli","docs\u002F5.api\u002F06.cli",[254,258,262],{"title":255,"path":256,"stem":257,"titleTemplate":6},"oiyo prepare","\u002Fdocs\u002Fapi\u002Fcli\u002Foiyo-prepare","docs\u002F5.api\u002F06.cli\u002F00.oiyo-prepare",{"title":259,"path":260,"stem":261,"titleTemplate":6},"oiyo dev","\u002Fdocs\u002Fapi\u002Fcli\u002Foiyo-dev","docs\u002F5.api\u002F06.cli\u002F01.oiyo-dev",{"title":263,"path":264,"stem":265,"titleTemplate":6},"oiyo build","\u002Fdocs\u002Fapi\u002Fcli\u002Foiyo-build","docs\u002F5.api\u002F06.cli\u002F02.oiyo-build","i-lucide:braces",{"title":268,"titleTemplate":6,"icon":269,"redirect":270,"path":271,"stem":272,"children":273,"page":21},"沟通交流","i-lucide:message-circle-question","\u002Fdocs\u002Fcommunity\u002Fassist","\u002Fdocs\u002Fcommunity","docs\u002F9.community",[274],{"title":275,"path":270,"stem":276,"titleTemplate":6,"icon":277},"加群互助","docs\u002F9.community\u002F01.assist","i-lucide:scan-qr-code",{"id":279,"title":90,"body":280,"description":1487,"extension":1488,"meta":1489,"navigation":1490,"path":91,"seo":1491,"stem":92,"titleTemplate":6,"__hash__":1492},"docs\u002Fdocs\u002F2.manual\u002F05.shell\u002F02.root-context.md",{"type":281,"value":282,"toc":1476},"minimark",[283,291,295,298,301,317,320,330,568,574,586,590,611,615,628,636,811,819,822,829,1054,1057,1060,1311,1314,1321,1326,1329,1367,1370,1446,1449,1452,1472],[284,285,286,287,290],"p",{},"根上下文用于在 ",[288,289,143],"code",{}," 中定义应用级状态，并提供给页面、组件或应用内其他文件使用。它适合承载应用骨架相关状态，而不是替代所有业务状态管理。",[292,293,294],"h2",{"id":294},"能力定位",[284,296,297],{},"根上下文解决的是跨页面读取应用根状态的问题。",[284,299,300],{},"典型场景：",[302,303,304,308,311,314],"ul",{},[305,306,307],"li",{},"主题状态。",[305,309,310],{},"应用外壳方法。",[305,312,313],{},"应用共享弹窗。",[305,315,316],{},"应用级共享的状态。",[292,318,227],{"id":319},"definerootcontext",[284,321,322,323,325,326,329],{},"在 ",[288,324,143],{}," 中无需导入，可以直接使用 ",[288,327,328],{},"defineRootContext()"," 定义并返回共享状态。",[331,332,338],"pre",{"className":333,"code":334,"filename":335,"language":336,"meta":337,"style":337},"language-vue shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Cscript setup>\nconst { title, count, increment, isDark } = defineRootContext(() => {\n  const title = ref('Hello Oiyo')\n  const count = ref(0)\n\n  function increment() {\n    count.value += 6\n  }\n\n  const isDark = useSystemDark()\n\n  return { title, count, increment, isDark }\n})\n\u003C\u002Fscript>\n","src\u002FApp.vue","vue","",[288,339,340,360,411,438,457,463,475,493,499,504,520,525,551,558],{"__ignoreMap":337},[341,342,345,349,353,357],"span",{"class":343,"line":344},"line",1,[341,346,348],{"class":347},"sDfIl","\u003C",[341,350,352],{"class":351},"sRlkE","script",[341,354,356],{"class":355},"smZ93"," setup",[341,358,359],{"class":347},">\n",[341,361,363,366,369,373,376,379,381,384,386,389,392,395,399,402,405,408],{"class":343,"line":362},2,[341,364,365],{"class":355},"const",[341,367,368],{"class":347}," {",[341,370,372],{"class":371},"sZSNi"," title",[341,374,375],{"class":347},",",[341,377,378],{"class":371}," count",[341,380,375],{"class":347},[341,382,383],{"class":371}," increment",[341,385,375],{"class":347},[341,387,388],{"class":371}," isDark ",[341,390,391],{"class":347},"}",[341,393,394],{"class":347}," =",[341,396,398],{"class":397},"s3cPz"," defineRootContext",[341,400,401],{"class":371},"(",[341,403,404],{"class":347},"()",[341,406,407],{"class":355}," =>",[341,409,410],{"class":347}," {\n",[341,412,414,417,419,421,424,426,429,433,435],{"class":343,"line":413},3,[341,415,416],{"class":355},"  const",[341,418,372],{"class":371},[341,420,394],{"class":347},[341,422,423],{"class":397}," ref",[341,425,401],{"class":351},[341,427,428],{"class":347},"'",[341,430,432],{"class":431},"sGFVr","Hello Oiyo",[341,434,428],{"class":347},[341,436,437],{"class":351},")\n",[341,439,441,443,445,447,449,451,455],{"class":343,"line":440},4,[341,442,416],{"class":355},[341,444,378],{"class":371},[341,446,394],{"class":347},[341,448,423],{"class":397},[341,450,401],{"class":351},[341,452,454],{"class":453},"sYRBq","0",[341,456,437],{"class":351},[341,458,460],{"class":343,"line":459},5,[341,461,462],{"emptyLinePlaceholder":42},"\n",[341,464,466,469,471,473],{"class":343,"line":465},6,[341,467,468],{"class":355},"  function",[341,470,383],{"class":397},[341,472,404],{"class":347},[341,474,410],{"class":347},[341,476,478,481,484,487,490],{"class":343,"line":477},7,[341,479,480],{"class":371},"    count",[341,482,483],{"class":347},".",[341,485,486],{"class":371},"value",[341,488,489],{"class":347}," +=",[341,491,492],{"class":453}," 6\n",[341,494,496],{"class":343,"line":495},8,[341,497,498],{"class":347},"  }\n",[341,500,502],{"class":343,"line":501},9,[341,503,462],{"emptyLinePlaceholder":42},[341,505,507,509,512,514,517],{"class":343,"line":506},10,[341,508,416],{"class":355},[341,510,511],{"class":371}," isDark",[341,513,394],{"class":347},[341,515,516],{"class":397}," useSystemDark",[341,518,519],{"class":351},"()\n",[341,521,523],{"class":343,"line":522},11,[341,524,462],{"emptyLinePlaceholder":42},[341,526,528,532,534,536,538,540,542,544,546,548],{"class":343,"line":527},12,[341,529,531],{"class":530},"s8R28","  return",[341,533,368],{"class":347},[341,535,372],{"class":371},[341,537,375],{"class":347},[341,539,378],{"class":371},[341,541,375],{"class":347},[341,543,383],{"class":371},[341,545,375],{"class":347},[341,547,511],{"class":371},[341,549,550],{"class":347}," }\n",[341,552,554,556],{"class":343,"line":553},13,[341,555,391],{"class":347},[341,557,437],{"class":371},[341,559,561,564,566],{"class":343,"line":560},14,[341,562,563],{"class":347},"\u003C\u002F",[341,565,352],{"class":351},[341,567,359],{"class":347},[284,569,570,571,573],{},"返回数据就是对外暴露的根上下文。这些状态可以在 ",[288,572,143],{}," 中使用，也可以被页面或其他应用文件读取。",[575,576,577],"warning",{},[284,578,579,580,582,583,585],{},"用于定义共享状态的 ",[288,581,227],{}," 方法只允许在 ",[288,584,143],{}," 中使用。",[292,587,589],{"id":588},"userootcontext","useRootContext",[284,591,592,593,595,596,600,601,603,604,607,608,610],{},"通过 ",[288,594,589],{}," 可以在 ",[597,598,599],"strong",{},"页面","、",[597,602,235],{}," 或 ",[597,605,606],{},"应用内任意文件"," 中无需导入，直接消费 ",[288,609,328],{}," 定义的共享状态。",[612,613,614],"h3",{"id":614},"应用骨架使用",[616,617,618],"tip",{},[284,619,620,621,623,624,627],{},"这里的应用骨架指 ",[288,622,143],{}," 的 ",[288,625,626],{},"\u003Ctemplate>"," 部分。",[284,629,322,630,632,633,635],{},[288,631,143],{}," 内，可以直接解构 ",[288,634,328],{}," 返回的状态。",[331,637,639],{"className":333,"code":638,"filename":335,"language":336,"meta":337,"style":337},"\u003Cscript setup>\nconst { increment } = defineRootContext(() => {\n  const count = ref(0)\n\n  function increment() {\n    count.value += 1\n  }\n\n  return { increment }\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cview @click=\"increment\">\n    触发根部叠加\n  \u003C\u002Fview>\n\u003C\u002Ftemplate>\n",[288,640,641,651,674,690,694,704,717,721,725,735,741,749,753,762,786,792,802],{"__ignoreMap":337},[341,642,643,645,647,649],{"class":343,"line":344},[341,644,348],{"class":347},[341,646,352],{"class":351},[341,648,356],{"class":355},[341,650,359],{"class":347},[341,652,653,655,657,660,662,664,666,668,670,672],{"class":343,"line":362},[341,654,365],{"class":355},[341,656,368],{"class":347},[341,658,659],{"class":371}," increment ",[341,661,391],{"class":347},[341,663,394],{"class":347},[341,665,398],{"class":397},[341,667,401],{"class":371},[341,669,404],{"class":347},[341,671,407],{"class":355},[341,673,410],{"class":347},[341,675,676,678,680,682,684,686,688],{"class":343,"line":413},[341,677,416],{"class":355},[341,679,378],{"class":371},[341,681,394],{"class":347},[341,683,423],{"class":397},[341,685,401],{"class":351},[341,687,454],{"class":453},[341,689,437],{"class":351},[341,691,692],{"class":343,"line":440},[341,693,462],{"emptyLinePlaceholder":42},[341,695,696,698,700,702],{"class":343,"line":459},[341,697,468],{"class":355},[341,699,383],{"class":397},[341,701,404],{"class":347},[341,703,410],{"class":347},[341,705,706,708,710,712,714],{"class":343,"line":465},[341,707,480],{"class":371},[341,709,483],{"class":347},[341,711,486],{"class":371},[341,713,489],{"class":347},[341,715,716],{"class":453}," 1\n",[341,718,719],{"class":343,"line":477},[341,720,498],{"class":347},[341,722,723],{"class":343,"line":495},[341,724,462],{"emptyLinePlaceholder":42},[341,726,727,729,731,733],{"class":343,"line":501},[341,728,531],{"class":530},[341,730,368],{"class":347},[341,732,383],{"class":371},[341,734,550],{"class":347},[341,736,737,739],{"class":343,"line":506},[341,738,391],{"class":347},[341,740,437],{"class":371},[341,742,743,745,747],{"class":343,"line":522},[341,744,563],{"class":347},[341,746,352],{"class":351},[341,748,359],{"class":347},[341,750,751],{"class":343,"line":527},[341,752,462],{"emptyLinePlaceholder":42},[341,754,755,757,760],{"class":343,"line":553},[341,756,348],{"class":347},[341,758,759],{"class":351},"template",[341,761,359],{"class":347},[341,763,764,767,770,773,776,779,782,784],{"class":343,"line":560},[341,765,766],{"class":347},"  \u003C",[341,768,769],{"class":351},"view",[341,771,772],{"class":355}," @click",[341,774,775],{"class":347},"=",[341,777,778],{"class":347},"\"",[341,780,781],{"class":431},"increment",[341,783,778],{"class":347},[341,785,359],{"class":347},[341,787,789],{"class":343,"line":788},15,[341,790,791],{"class":371},"    触发根部叠加\n",[341,793,795,798,800],{"class":343,"line":794},16,[341,796,797],{"class":347},"  \u003C\u002F",[341,799,769],{"class":351},[341,801,359],{"class":347},[341,803,805,807,809],{"class":343,"line":804},17,[341,806,563],{"class":347},[341,808,759],{"class":351},[341,810,359],{"class":347},[575,812,813],{},[284,814,815,816,818],{},"应用骨架模板中使用的变量和方法都应通过 ",[288,817,328],{}," 暴露。",[612,820,821],{"id":821},"页面中使用",[284,823,824,825,828],{},"页面使用 ",[288,826,827],{},"useRootContext()"," 读取根上下文。",[331,830,833],{"className":333,"code":831,"filename":832,"language":336,"meta":337,"style":337},"\u003Cscript setup lang=\"ts\">\nconst { title, increment } = useRootContext\u003C{\n  title: Ref\u003Cstring>\n  increment: () => void\n}>()\n\nonLoad(() => {\n  console.log('生命周期中使用', title.value)\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cview>{{ title }}\u003C\u002Fview>\n\n  \u003Cview @click=\"increment\">\n    模板中触发方法\n  \u003C\u002Fview>\n\u003C\u002Ftemplate>\n","src\u002Fpages\u002Fhome\u002Findex.vue",[288,834,835,857,879,898,913,920,924,937,966,972,980,984,992,1010,1014,1032,1037,1045],{"__ignoreMap":337},[341,836,837,839,841,843,846,848,850,853,855],{"class":343,"line":344},[341,838,348],{"class":347},[341,840,352],{"class":351},[341,842,356],{"class":355},[341,844,845],{"class":355}," lang",[341,847,775],{"class":347},[341,849,778],{"class":347},[341,851,852],{"class":431},"ts",[341,854,778],{"class":347},[341,856,359],{"class":347},[341,858,859,861,863,865,867,869,871,873,876],{"class":343,"line":362},[341,860,365],{"class":355},[341,862,368],{"class":347},[341,864,372],{"class":371},[341,866,375],{"class":347},[341,868,659],{"class":371},[341,870,391],{"class":347},[341,872,394],{"class":347},[341,874,875],{"class":397}," useRootContext",[341,877,878],{"class":347},"\u003C{\n",[341,880,881,884,887,891,893,896],{"class":343,"line":413},[341,882,883],{"class":351},"  title",[341,885,886],{"class":347},":",[341,888,890],{"class":889},"s52Pk"," Ref",[341,892,348],{"class":347},[341,894,895],{"class":889},"string",[341,897,359],{"class":347},[341,899,900,903,905,908,910],{"class":343,"line":440},[341,901,902],{"class":351},"  increment",[341,904,886],{"class":347},[341,906,907],{"class":347}," ()",[341,909,407],{"class":355},[341,911,912],{"class":889}," void\n",[341,914,915,918],{"class":343,"line":459},[341,916,917],{"class":347},"}>",[341,919,519],{"class":371},[341,921,922],{"class":343,"line":465},[341,923,462],{"emptyLinePlaceholder":42},[341,925,926,929,931,933,935],{"class":343,"line":477},[341,927,928],{"class":397},"onLoad",[341,930,401],{"class":371},[341,932,404],{"class":347},[341,934,407],{"class":355},[341,936,410],{"class":347},[341,938,939,942,944,947,949,951,954,956,958,960,962,964],{"class":343,"line":495},[341,940,941],{"class":371},"  console",[341,943,483],{"class":347},[341,945,946],{"class":397},"log",[341,948,401],{"class":351},[341,950,428],{"class":347},[341,952,953],{"class":431},"生命周期中使用",[341,955,428],{"class":347},[341,957,375],{"class":347},[341,959,372],{"class":371},[341,961,483],{"class":347},[341,963,486],{"class":371},[341,965,437],{"class":351},[341,967,968,970],{"class":343,"line":501},[341,969,391],{"class":347},[341,971,437],{"class":371},[341,973,974,976,978],{"class":343,"line":506},[341,975,563],{"class":347},[341,977,352],{"class":351},[341,979,359],{"class":347},[341,981,982],{"class":343,"line":522},[341,983,462],{"emptyLinePlaceholder":42},[341,985,986,988,990],{"class":343,"line":527},[341,987,348],{"class":347},[341,989,759],{"class":351},[341,991,359],{"class":347},[341,993,994,996,998,1001,1004,1006,1008],{"class":343,"line":553},[341,995,766],{"class":347},[341,997,769],{"class":351},[341,999,1000],{"class":347},">",[341,1002,1003],{"class":371},"{{ title }}",[341,1005,563],{"class":347},[341,1007,769],{"class":351},[341,1009,359],{"class":347},[341,1011,1012],{"class":343,"line":560},[341,1013,462],{"emptyLinePlaceholder":42},[341,1015,1016,1018,1020,1022,1024,1026,1028,1030],{"class":343,"line":788},[341,1017,766],{"class":347},[341,1019,769],{"class":351},[341,1021,772],{"class":355},[341,1023,775],{"class":347},[341,1025,778],{"class":347},[341,1027,781],{"class":431},[341,1029,778],{"class":347},[341,1031,359],{"class":347},[341,1033,1034],{"class":343,"line":794},[341,1035,1036],{"class":371},"    模板中触发方法\n",[341,1038,1039,1041,1043],{"class":343,"line":804},[341,1040,797],{"class":347},[341,1042,769],{"class":351},[341,1044,359],{"class":347},[341,1046,1048,1050,1052],{"class":343,"line":1047},18,[341,1049,563],{"class":347},[341,1051,759],{"class":351},[341,1053,359],{"class":347},[612,1055,1056],{"id":1056},"应用文件中使用",[284,1058,1059],{},"store、composable 等应用内文件可以读取根上下文。",[1061,1062,1063,1201],"code-group",{},[331,1064,1068],{"className":1065,"code":1066,"filename":1067,"language":852,"meta":337,"style":337},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export const useAppStore = defineStore('oiyo-app', () => {\n  const { title } = useRootContext\u003C{ title: Ref\u003Cstring> }>()\n\n  const hey = computed(() => `你好 - ${title.value}`)\n\n  return { hey }\n})\n","src\u002Fstores\u002Fapp.ts",[288,1069,1070,1103,1138,1142,1181,1185,1195],{"__ignoreMap":337},[341,1071,1072,1075,1078,1081,1083,1086,1088,1090,1093,1095,1097,1099,1101],{"class":343,"line":344},[341,1073,1074],{"class":530},"export",[341,1076,1077],{"class":355}," const",[341,1079,1080],{"class":371}," useAppStore ",[341,1082,775],{"class":347},[341,1084,1085],{"class":397}," defineStore",[341,1087,401],{"class":371},[341,1089,428],{"class":347},[341,1091,1092],{"class":431},"oiyo-app",[341,1094,428],{"class":347},[341,1096,375],{"class":347},[341,1098,907],{"class":347},[341,1100,407],{"class":355},[341,1102,410],{"class":347},[341,1104,1105,1107,1109,1111,1114,1116,1118,1121,1123,1125,1127,1129,1131,1133,1136],{"class":343,"line":362},[341,1106,416],{"class":355},[341,1108,368],{"class":347},[341,1110,372],{"class":371},[341,1112,1113],{"class":347}," }",[341,1115,394],{"class":347},[341,1117,875],{"class":397},[341,1119,1120],{"class":347},"\u003C{",[341,1122,372],{"class":351},[341,1124,886],{"class":347},[341,1126,890],{"class":889},[341,1128,348],{"class":347},[341,1130,895],{"class":889},[341,1132,1000],{"class":347},[341,1134,1135],{"class":347}," }>",[341,1137,519],{"class":351},[341,1139,1140],{"class":343,"line":413},[341,1141,462],{"emptyLinePlaceholder":42},[341,1143,1144,1146,1149,1151,1154,1156,1158,1160,1163,1166,1169,1172,1174,1176,1179],{"class":343,"line":440},[341,1145,416],{"class":355},[341,1147,1148],{"class":371}," hey",[341,1150,394],{"class":347},[341,1152,1153],{"class":397}," computed",[341,1155,401],{"class":351},[341,1157,404],{"class":347},[341,1159,407],{"class":355},[341,1161,1162],{"class":347}," `",[341,1164,1165],{"class":431},"你好 - ",[341,1167,1168],{"class":347},"${",[341,1170,1171],{"class":371},"title",[341,1173,483],{"class":347},[341,1175,486],{"class":371},[341,1177,1178],{"class":347},"}`",[341,1180,437],{"class":351},[341,1182,1183],{"class":343,"line":459},[341,1184,462],{"emptyLinePlaceholder":42},[341,1186,1187,1189,1191,1193],{"class":343,"line":465},[341,1188,531],{"class":530},[341,1190,368],{"class":347},[341,1192,1148],{"class":371},[341,1194,550],{"class":347},[341,1196,1197,1199],{"class":343,"line":477},[341,1198,391],{"class":347},[341,1200,437],{"class":371},[331,1202,1205],{"className":1065,"code":1203,"filename":1204,"language":852,"meta":337,"style":337},"export const useCount = () => {\n  const { count } = useRootContext\u003C{ count: Ref\u003Cnumber> }>()\n\n  const double = computed(() => count.value * 2)\n\n  return { double }\n}\n","src\u002Fcomposables\u002Fuse-count.ts",[288,1206,1207,1224,1257,1261,1292,1296,1306],{"__ignoreMap":337},[341,1208,1209,1211,1213,1216,1218,1220,1222],{"class":343,"line":344},[341,1210,1074],{"class":530},[341,1212,1077],{"class":355},[341,1214,1215],{"class":371}," useCount ",[341,1217,775],{"class":347},[341,1219,907],{"class":347},[341,1221,407],{"class":355},[341,1223,410],{"class":347},[341,1225,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244,1246,1248,1251,1253,1255],{"class":343,"line":362},[341,1227,416],{"class":355},[341,1229,368],{"class":347},[341,1231,378],{"class":371},[341,1233,1113],{"class":347},[341,1235,394],{"class":347},[341,1237,875],{"class":397},[341,1239,1120],{"class":347},[341,1241,378],{"class":351},[341,1243,886],{"class":347},[341,1245,890],{"class":889},[341,1247,348],{"class":347},[341,1249,1250],{"class":889},"number",[341,1252,1000],{"class":347},[341,1254,1135],{"class":347},[341,1256,519],{"class":351},[341,1258,1259],{"class":343,"line":413},[341,1260,462],{"emptyLinePlaceholder":42},[341,1262,1263,1265,1268,1270,1272,1274,1276,1278,1280,1282,1284,1287,1290],{"class":343,"line":440},[341,1264,416],{"class":355},[341,1266,1267],{"class":371}," double",[341,1269,394],{"class":347},[341,1271,1153],{"class":397},[341,1273,401],{"class":351},[341,1275,404],{"class":347},[341,1277,407],{"class":355},[341,1279,378],{"class":371},[341,1281,483],{"class":347},[341,1283,486],{"class":371},[341,1285,1286],{"class":347}," *",[341,1288,1289],{"class":453}," 2",[341,1291,437],{"class":351},[341,1293,1294],{"class":343,"line":459},[341,1295,462],{"emptyLinePlaceholder":42},[341,1297,1298,1300,1302,1304],{"class":343,"line":465},[341,1299,531],{"class":530},[341,1301,368],{"class":347},[341,1303,1267],{"class":371},[341,1305,550],{"class":347},[341,1307,1308],{"class":343,"line":477},[341,1309,1310],{"class":347},"}\n",[292,1312,1313],{"id":1313},"类型标注",[284,1315,1316,600,1318,1320],{},[288,1317,328],{},[288,1319,827],{}," 都支持显式标注共享状态的类型。",[284,1322,1323,1325],{},[288,1324,827],{}," 建议显式标注当前文件需要的字段。",[284,1327,1328],{},"读取少量字段：",[331,1330,1332],{"className":1065,"code":1331,"language":852,"meta":337,"style":337},"const { title } = useRootContext\u003C{ title: Ref\u003Cstring> }>()\n",[288,1333,1334],{"__ignoreMap":337},[341,1335,1336,1338,1340,1343,1345,1347,1349,1351,1353,1355,1357,1359,1361,1363,1365],{"class":343,"line":344},[341,1337,365],{"class":355},[341,1339,368],{"class":347},[341,1341,1342],{"class":371}," title ",[341,1344,391],{"class":347},[341,1346,394],{"class":347},[341,1348,875],{"class":397},[341,1350,1120],{"class":347},[341,1352,372],{"class":351},[341,1354,886],{"class":347},[341,1356,890],{"class":889},[341,1358,348],{"class":347},[341,1360,895],{"class":889},[341,1362,1000],{"class":347},[341,1364,1135],{"class":347},[341,1366,519],{"class":371},[284,1368,1369],{},"读取多个字段：",[331,1371,1373],{"className":1065,"code":1372,"language":852,"meta":337,"style":337},"interface RootContext {\n  title: Ref\u003Cstring>\n  increment: () => void\n}\n\nconst { title, increment } = useRootContext\u003CRootContext>()\n",[288,1374,1375,1385,1399,1411,1415,1419],{"__ignoreMap":337},[341,1376,1377,1380,1383],{"class":343,"line":344},[341,1378,1379],{"class":355},"interface",[341,1381,1382],{"class":889}," RootContext",[341,1384,410],{"class":347},[341,1386,1387,1389,1391,1393,1395,1397],{"class":343,"line":362},[341,1388,883],{"class":351},[341,1390,886],{"class":347},[341,1392,890],{"class":889},[341,1394,348],{"class":347},[341,1396,895],{"class":889},[341,1398,359],{"class":347},[341,1400,1401,1403,1405,1407,1409],{"class":343,"line":413},[341,1402,902],{"class":351},[341,1404,886],{"class":347},[341,1406,907],{"class":347},[341,1408,407],{"class":355},[341,1410,912],{"class":889},[341,1412,1413],{"class":343,"line":440},[341,1414,1310],{"class":347},[341,1416,1417],{"class":343,"line":459},[341,1418,462],{"emptyLinePlaceholder":42},[341,1420,1421,1423,1425,1427,1429,1431,1433,1435,1437,1439,1442,1444],{"class":343,"line":465},[341,1422,365],{"class":355},[341,1424,368],{"class":347},[341,1426,372],{"class":371},[341,1428,375],{"class":347},[341,1430,659],{"class":371},[341,1432,391],{"class":347},[341,1434,394],{"class":347},[341,1436,875],{"class":397},[341,1438,348],{"class":347},[341,1440,1441],{"class":889},"RootContext",[341,1443,1000],{"class":347},[341,1445,519],{"class":371},[292,1447,1448],{"id":1448},"验证可用",[284,1450,1451],{},"检查：",[1453,1454,1455,1463,1469],"ol",{},[305,1456,1457,1459,1460,1462],{},[288,1458,328],{}," 是否定义在 ",[288,1461,143],{},"。",[305,1464,1465,1468],{},[288,1466,1467],{},"return"," 中是否包含所需共享的状态。",[305,1470,1471],{},"页面局部状态是否没有误放进根上下文。",[1473,1474,1475],"style",{},"html pre.shiki code .sDfIl, html code.shiki .sDfIl{--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF}html pre.shiki code .sRlkE, html code.shiki .sRlkE{--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178}html pre.shiki code .smZ93, html code.shiki .smZ93{--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA}html pre.shiki code .sZSNi, html code.shiki .sZSNi{--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8}html pre.shiki code .s3cPz, html code.shiki .s3cPz{--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF}html pre.shiki code .sGFVr, html code.shiki .sGFVr{--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D}html pre.shiki code .sYRBq, html code.shiki .sYRBq{--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C}html pre.shiki code .s8R28, html code.shiki .s8R28{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}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 .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 .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);}html pre.shiki code .s52Pk, html code.shiki .s52Pk{--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B}",{"title":337,"searchDepth":362,"depth":362,"links":1477},[1478,1479,1480,1485,1486],{"id":294,"depth":362,"text":294},{"id":319,"depth":362,"text":227},{"id":588,"depth":362,"text":589,"children":1481},[1482,1483,1484],{"id":614,"depth":413,"text":614},{"id":821,"depth":413,"text":821},{"id":1056,"depth":413,"text":1056},{"id":1313,"depth":362,"text":1313},{"id":1448,"depth":362,"text":1448},"用 defineRootContext 和 useRootContext 共享和使用根状态","md",{},{"icon":93},{"title":90,"description":1487},"Y_k4VyGcYMtQJlHSqvFNe9lpXtIM3OqsWXXUkMAUEZw",[1494,1496],{"title":85,"path":86,"stem":87,"description":1495,"icon":88,"children":-1},"在 App.vue 中组织应用外壳、布局入口和页面渲染入口",{"title":95,"path":96,"stem":97,"description":1497,"icon":98,"children":-1},"实现页面内容分离与页面外壳",1780823239775]