[{"data":1,"prerenderedAt":901},["ShallowReactive",2],{"$fen922M9aBBBGS7gEr37q12a4sAhxXmwCENBD1e0zskM":3,"\u002Fdocs\u002Fmanual\u002Fscan\u002Fcomponents":278,"\u002Fdocs\u002Fmanual\u002Fscan\u002Fcomponents-surround":896},[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":53,"body":280,"description":891,"extension":484,"meta":892,"navigation":893,"path":54,"seo":894,"stem":55,"titleTemplate":6,"__hash__":895},"docs\u002Fdocs\u002F2.manual\u002F03.scan\u002F02.components.md",{"type":281,"value":282,"toc":881},"minimark",[283,292,295,308,312,320,324,331,337,465,475,479,522,525,625,628,631,642,647,650,732,735,792,795,802,823,826,829,837,840,843,857,860,863,877],[284,285,286,287,291],"p",{},"自动引用机制让 Vue 模板无需手动导入和注册组件即可使用。Oiyo 会根据 ",[288,289,290],"code",{},"scan.components"," 扫描规则启用自动引用机制。",[284,293,294],{},"主要解决：",[296,297,298,302,305],"ul",{},[299,300,301],"li",{},"按需引入。",[299,303,304],{},"本地组件、第三方组件库统一接入。",[299,306,307],{},"模板中的组件拥有类型提示。",[309,310,311],"h2",{"id":311},"扫描源",[284,313,314,315,319],{},"采用 glob 语法进行文件匹配，扫描源按 ",[316,317,318],"strong",{},"使用侧"," 的导入来源声明。",[321,322,323],"h3",{"id":323},"本地组件",[284,325,326,327,330],{},"Oiyo 已内置 ",[288,328,329],{},"components\u002F**\u002F*.vue"," 作为约定扫描源，无需再次配置。",[284,332,333,334,336],{},"对于非约定目录，可以在 ",[288,335,153],{}," 中显式配置：",[338,339,344],"pre",{"className":340,"code":341,"filename":153,"language":342,"meta":343,"style":343},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","import { defineOiyoConfig } from '@skiyee\u002Foiyo\u002Fconfig'\n\nexport default defineOiyoConfig({\n  scan: {\n    components: [\n      'ui\u002F**\u002F*.vue',\n    ],\n  },\n})\n","ts","",[288,345,346,379,385,403,416,427,442,450,456],{"__ignoreMap":343},[347,348,351,355,359,363,366,369,372,376],"span",{"class":349,"line":350},"line",1,[347,352,354],{"class":353},"s8R28","import",[347,356,358],{"class":357},"sDfIl"," {",[347,360,362],{"class":361},"sZSNi"," defineOiyoConfig",[347,364,365],{"class":357}," }",[347,367,368],{"class":353}," from",[347,370,371],{"class":357}," '",[347,373,375],{"class":374},"sGFVr","@skiyee\u002Foiyo\u002Fconfig",[347,377,378],{"class":357},"'\n",[347,380,382],{"class":349,"line":381},2,[347,383,384],{"emptyLinePlaceholder":42},"\n",[347,386,388,391,394,397,400],{"class":349,"line":387},3,[347,389,390],{"class":353},"export",[347,392,393],{"class":353}," default",[347,395,362],{"class":396},"s3cPz",[347,398,399],{"class":361},"(",[347,401,402],{"class":357},"{\n",[347,404,406,410,413],{"class":349,"line":405},4,[347,407,409],{"class":408},"sRlkE","  scan",[347,411,412],{"class":357},":",[347,414,415],{"class":357}," {\n",[347,417,419,422,424],{"class":349,"line":418},5,[347,420,421],{"class":408},"    components",[347,423,412],{"class":357},[347,425,426],{"class":361}," [\n",[347,428,430,433,436,439],{"class":349,"line":429},6,[347,431,432],{"class":357},"      '",[347,434,435],{"class":374},"ui\u002F**\u002F*.vue",[347,437,438],{"class":357},"'",[347,440,441],{"class":357},",\n",[347,443,445,448],{"class":349,"line":444},7,[347,446,447],{"class":361},"    ]",[347,449,441],{"class":357},[347,451,453],{"class":349,"line":452},8,[347,454,455],{"class":357},"  },\n",[347,457,459,462],{"class":349,"line":458},9,[347,460,461],{"class":357},"}",[347,463,464],{"class":361},")\n",[466,467,468],"note",{},[284,469,470,471,474],{},"扫描路径均基于 ",[288,472,473],{},"\u003CsrcDir>"," 目录。",[476,477,478],"h4",{"id":478},"定义",[338,480,485],{"className":481,"code":482,"filename":483,"language":484,"meta":343,"style":343},"language-md shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","src\n├─ components\n│   ├─ OiyoButton.vue\n│   └─ order\n│      └─ List.vue\n└─ ui\n    └─ Button.vue\n","目录结构","md",[288,486,487,492,497,502,507,512,517],{"__ignoreMap":343},[347,488,489],{"class":349,"line":350},[347,490,491],{"class":361},"src\n",[347,493,494],{"class":349,"line":381},[347,495,496],{"class":361},"├─ components\n",[347,498,499],{"class":349,"line":387},[347,500,501],{"class":361},"│   ├─ OiyoButton.vue\n",[347,503,504],{"class":349,"line":405},[347,505,506],{"class":361},"│   └─ order\n",[347,508,509],{"class":349,"line":418},[347,510,511],{"class":361},"│      └─ List.vue\n",[347,513,514],{"class":349,"line":429},[347,515,516],{"class":361},"└─ ui\n",[347,518,519],{"class":349,"line":444},[347,520,521],{"class":361},"    └─ Button.vue\n",[476,523,524],{"id":524},"使用",[338,526,531],{"className":527,"code":528,"filename":529,"language":530,"meta":343,"style":343},"language-vue shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Cscript setup>\n\u002F\u002F 无需手动导入注册: import OiyoButton from '~\u002Fcomponents\u002FOiyoButton.vue';\n\u002F\u002F 无需手动导入注册: import OrderList from '~\u002Fcomponents\u002Forder\u002FList.vue';\n\u002F\u002F 无需手动导入注册: import Button from '~\u002Fui\u002FButton.vue';\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003COiyoButton \u002F>\n  \u003COrderList \u002F>\n  \u003CButton \u002F>\n\u003C\u002Ftemplate>\n","any.vue","vue",[288,532,533,548,554,559,564,573,577,586,597,606,616],{"__ignoreMap":343},[347,534,535,538,541,545],{"class":349,"line":350},[347,536,537],{"class":357},"\u003C",[347,539,540],{"class":408},"script",[347,542,544],{"class":543},"smZ93"," setup",[347,546,547],{"class":357},">\n",[347,549,550],{"class":349,"line":381},[347,551,553],{"class":552},"sWuyu","\u002F\u002F 无需手动导入注册: import OiyoButton from '~\u002Fcomponents\u002FOiyoButton.vue';\n",[347,555,556],{"class":349,"line":387},[347,557,558],{"class":552},"\u002F\u002F 无需手动导入注册: import OrderList from '~\u002Fcomponents\u002Forder\u002FList.vue';\n",[347,560,561],{"class":349,"line":405},[347,562,563],{"class":552},"\u002F\u002F 无需手动导入注册: import Button from '~\u002Fui\u002FButton.vue';\n",[347,565,566,569,571],{"class":349,"line":418},[347,567,568],{"class":357},"\u003C\u002F",[347,570,540],{"class":408},[347,572,547],{"class":357},[347,574,575],{"class":349,"line":429},[347,576,384],{"emptyLinePlaceholder":42},[347,578,579,581,584],{"class":349,"line":444},[347,580,537],{"class":357},[347,582,583],{"class":408},"template",[347,585,547],{"class":357},[347,587,588,591,594],{"class":349,"line":452},[347,589,590],{"class":357},"  \u003C",[347,592,593],{"class":408},"OiyoButton",[347,595,596],{"class":357}," \u002F>\n",[347,598,599,601,604],{"class":349,"line":458},[347,600,590],{"class":357},[347,602,603],{"class":408},"OrderList",[347,605,596],{"class":357},[347,607,609,611,614],{"class":349,"line":608},10,[347,610,590],{"class":357},[347,612,613],{"class":408},"Button",[347,615,596],{"class":357},[347,617,619,621,623],{"class":349,"line":618},11,[347,620,568],{"class":357},[347,622,583],{"class":408},[347,624,547],{"class":357},[284,626,627],{},"扫描到的组件会获得模板类型提示。",[321,629,630],{"id":630},"第三方组件库",[284,632,633,634,637,638,641],{},"假设要扫描包名为 ",[288,635,636],{},"@skiyee\u002Fui"," 的组件库，该库组件的 ",[316,639,640],{},"显式导入注册"," 方式如下：",[284,643,644],{},[288,645,646],{},"import SkButton from '@skiyee\u002Fui\u002Fcomponents\u002Fsk-button\u002Fsk-button.vue'",[284,648,649],{},"可以按同一来源显式配置第三方组件库的扫描源：",[338,651,653],{"className":340,"code":652,"filename":153,"language":342,"meta":343,"style":343},"import { defineOiyoConfig } from '@skiyee\u002Foiyo\u002Fconfig'\n\nexport default defineOiyoConfig({\n  scan: {\n    components: [\n      '@skiyee\u002Fui\u002Fcomponents\u002F**\u002F*.vue',\n    ],\n  },\n})\n",[288,654,655,673,677,689,697,705,716,722,726],{"__ignoreMap":343},[347,656,657,659,661,663,665,667,669,671],{"class":349,"line":350},[347,658,354],{"class":353},[347,660,358],{"class":357},[347,662,362],{"class":361},[347,664,365],{"class":357},[347,666,368],{"class":353},[347,668,371],{"class":357},[347,670,375],{"class":374},[347,672,378],{"class":357},[347,674,675],{"class":349,"line":381},[347,676,384],{"emptyLinePlaceholder":42},[347,678,679,681,683,685,687],{"class":349,"line":387},[347,680,390],{"class":353},[347,682,393],{"class":353},[347,684,362],{"class":396},[347,686,399],{"class":361},[347,688,402],{"class":357},[347,690,691,693,695],{"class":349,"line":405},[347,692,409],{"class":408},[347,694,412],{"class":357},[347,696,415],{"class":357},[347,698,699,701,703],{"class":349,"line":418},[347,700,421],{"class":408},[347,702,412],{"class":357},[347,704,426],{"class":361},[347,706,707,709,712,714],{"class":349,"line":429},[347,708,432],{"class":357},[347,710,711],{"class":374},"@skiyee\u002Fui\u002Fcomponents\u002F**\u002F*.vue",[347,713,438],{"class":357},[347,715,441],{"class":357},[347,717,718,720],{"class":349,"line":444},[347,719,447],{"class":361},[347,721,441],{"class":357},[347,723,724],{"class":349,"line":452},[347,725,455],{"class":357},[347,727,728,730],{"class":349,"line":458},[347,729,461],{"class":357},[347,731,464],{"class":361},[284,733,734],{},"使用方式与本地组件一致：",[338,736,738],{"className":527,"code":737,"language":530,"meta":343,"style":343},"\u003Cscript setup>\n\u002F\u002F 无需手动导入注册: import SkButton from '@skiyee\u002Fui\u002Fcomponents\u002Fsk-button\u002Fsk-button.vue';\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CSkButton \u002F>\n\u003C\u002Ftemplate>\n",[288,739,740,750,755,763,767,775,784],{"__ignoreMap":343},[347,741,742,744,746,748],{"class":349,"line":350},[347,743,537],{"class":357},[347,745,540],{"class":408},[347,747,544],{"class":543},[347,749,547],{"class":357},[347,751,752],{"class":349,"line":381},[347,753,754],{"class":552},"\u002F\u002F 无需手动导入注册: import SkButton from '@skiyee\u002Fui\u002Fcomponents\u002Fsk-button\u002Fsk-button.vue';\n",[347,756,757,759,761],{"class":349,"line":387},[347,758,568],{"class":357},[347,760,540],{"class":408},[347,762,547],{"class":357},[347,764,765],{"class":349,"line":405},[347,766,384],{"emptyLinePlaceholder":42},[347,768,769,771,773],{"class":349,"line":418},[347,770,537],{"class":357},[347,772,583],{"class":408},[347,774,547],{"class":357},[347,776,777,779,782],{"class":349,"line":429},[347,778,590],{"class":357},[347,780,781],{"class":408},"SkButton",[347,783,596],{"class":357},[347,785,786,788,790],{"class":349,"line":444},[347,787,568],{"class":357},[347,789,583],{"class":408},[347,791,547],{"class":357},[321,793,794],{"id":794},"声明技巧",[284,796,797,798,801],{},"扫描源的声明与显式导入注册的 ",[316,799,800],{},"来源"," 保持一致。",[803,804,805,815],"ol",{},[299,806,807,810,811,814],{},[288,808,809],{},"import BizButton from '~\u002Fbiz-components\u002Fbutton.vue'",": ",[288,812,813],{},"biz-components\u002F*.vue","。",[299,816,817,810,820,814],{},[288,818,819],{},"import OiButton from '@package\u002Fui\u002FOiButton\u002FOiButton.vue'",[288,821,822],{},"@package\u002Fui\u002F**\u002F*.vue",[309,824,825],{"id":825},"组件命名",[284,827,828],{},"组件标签名来自扫描结果。常见原则：",[296,830,831,834],{},[299,832,833],{},"本地组件文件名对应组件名。",[299,835,836],{},"第三方组件名称由组件库文件决定。",[309,838,839],{"id":839},"验证可用",[284,841,842],{},"如果组件或类型不可用，检查：",[803,844,845,848,851],{},[299,846,847],{},"组件是否在扫描路径内。",[299,849,850],{},"扫描源 glob 是否写对。",[299,852,853,854,856],{},"是否重新运行 ",[288,855,259],{}," 命令。",[309,858,859],{"id":859},"使用原则",[284,861,862],{},"使用时遵循这些原则：",[296,864,865,868,874],{},[299,866,867],{},"若文件放在约定目录，优先利用内置扫描。",[299,869,870,871,873],{},"非约定目录或第三方库，通过 ",[288,872,153],{}," 显式配置。",[299,875,876],{},"被扫描的组件文件命名采用 PascalCase（大驼峰）风格。",[878,879,880],"style",{},"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 pre.shiki code .sDfIl, html code.shiki .sDfIl{--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF}html pre.shiki code .sZSNi, html code.shiki .sZSNi{--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8}html pre.shiki code .sGFVr, html code.shiki .sGFVr{--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D}html pre.shiki code .s3cPz, html code.shiki .s3cPz{--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF}html pre.shiki code .sRlkE, html code.shiki .sRlkE{--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178}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 .smZ93, html code.shiki .smZ93{--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA}html pre.shiki code .sWuyu, html code.shiki .sWuyu{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":343,"searchDepth":381,"depth":381,"links":882},[883,888,889,890],{"id":311,"depth":381,"text":311,"children":884},[885,886,887],{"id":323,"depth":387,"text":323},{"id":630,"depth":387,"text":630},{"id":794,"depth":387,"text":794},{"id":825,"depth":381,"text":825},{"id":839,"depth":381,"text":839},{"id":859,"depth":381,"text":859},"让 Vue 组件无需注册就可以在模板中直接可用",{},{"icon":56},{"title":53,"description":891},"Ip4rlYpbezMbdS_ETSxe82JqcV0aFyeQEnu-Zt138xE",[897,899],{"title":48,"path":49,"stem":50,"description":898,"icon":51,"children":-1},"让 API 无需手写 import 即可使用",{"title":64,"path":65,"stem":66,"description":900,"icon":67,"children":-1},"基于文件的路由系统，生成主包页面、分包页面、TabBar",1780823239523]