[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"knowledge-all":3},[4,89,465],{"id":5,"title":6,"body":7,"category":73,"date":74,"description":75,"difficulty":76,"extension":77,"meta":78,"navigation":79,"order":80,"path":81,"seo":82,"stem":83,"tags":84,"__hash__":88},"knowledge\u002Fknowledge\u002Fconference-notes.md","2026 前端大会参会笔记",{"type":8,"value":9,"toc":66},"minimark",[10,15,19,42,46,49,60,63],[11,12,14],"h2",{"id":13},"vue-生态趋势","Vue 生态趋势",[16,17,18],"p",{},"Vue 团队分享了 2026 年的技术路线图：",[20,21,22,30,36],"ul",{},[23,24,25,29],"li",{},[26,27,28],"strong",{},"Vue 3.6",": 编译时优化，更小的包体积",[23,31,32,35],{},[26,33,34],{},"Vapor Mode",": 运行时移除 Virtual DOM",[23,37,38,41],{},[26,39,40],{},"Nuxt 4",": 更快的 HMR，更好的类型推断",[11,43,45],{"id":44},"ai-与前端开发","AI 与前端开发",[16,47,48],{},"多个演讲涉及 AI 辅助开发：",[20,50,51,54,57],{},[23,52,53],{},"代码补全和重构辅助",[23,55,56],{},"自动化测试生成",[23,58,59],{},"UI 设计到代码转换",[11,61,62],{"id":62},"个人思考",[16,64,65],{},"前端开发正在从\"手写代码\"向\"架构设计\"转变。理解底层原理仍然重要，但效率工具的使用会成为关键竞争力。",{"title":67,"searchDepth":68,"depth":68,"links":69},"",2,[70,71,72],{"id":13,"depth":68,"text":14},{"id":44,"depth":68,"text":45},{"id":62,"depth":68,"text":62},"notes","2026-04-20","前端技术大会的要点记录和思考",null,"md",{},true,1,"\u002Fknowledge\u002Fconference-notes",{"title":6,"description":75},"knowledge\u002Fconference-notes",[85,86,87],"frontend","conference","thoughts","QRRFgGTN0Px3Dpq_fRCHtcuu30Y1etzsMm1JKEBoGBM",{"id":90,"title":91,"body":92,"category":454,"date":455,"description":456,"difficulty":457,"extension":77,"meta":458,"navigation":79,"order":80,"path":459,"seo":460,"stem":461,"tags":462,"__hash__":464},"knowledge\u002Fknowledge\u002Fgit-cheatsheet.md","Git 常用命令速查",{"type":8,"value":93,"toc":448},[94,97,232,235,310,313,390,393,444],[11,95,96],{"id":96},"基本操作",[98,99,103],"pre",{"className":100,"code":101,"language":102,"meta":67,"style":67},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git init                    # 初始化仓库\ngit clone \u003Curl>             # 克隆仓库\ngit status                  # 查看状态\ngit add .                   # 暂存所有更改\ngit commit -m \"message\"     # 提交\n\ngit pull origin main        # 拉取远程\ngit push origin main        # 推送到远程\n","bash",[104,105,106,122,146,157,171,194,200,217],"code",{"__ignoreMap":67},[107,108,110,114,118],"span",{"class":109,"line":80},"line",[107,111,113],{"class":112},"sBMFI","git",[107,115,117],{"class":116},"sfazB"," init",[107,119,121],{"class":120},"sHwdD","                    # 初始化仓库\n",[107,123,124,126,129,133,136,140,143],{"class":109,"line":68},[107,125,113],{"class":112},[107,127,128],{"class":116}," clone",[107,130,132],{"class":131},"sMK4o"," \u003C",[107,134,135],{"class":116},"ur",[107,137,139],{"class":138},"sTEyZ","l",[107,141,142],{"class":131},">",[107,144,145],{"class":120},"             # 克隆仓库\n",[107,147,149,151,154],{"class":109,"line":148},3,[107,150,113],{"class":112},[107,152,153],{"class":116}," status",[107,155,156],{"class":120},"                  # 查看状态\n",[107,158,160,162,165,168],{"class":109,"line":159},4,[107,161,113],{"class":112},[107,163,164],{"class":116}," add",[107,166,167],{"class":116}," .",[107,169,170],{"class":120},"                   # 暂存所有更改\n",[107,172,174,176,179,182,185,188,191],{"class":109,"line":173},5,[107,175,113],{"class":112},[107,177,178],{"class":116}," commit",[107,180,181],{"class":116}," -m",[107,183,184],{"class":131}," \"",[107,186,187],{"class":116},"message",[107,189,190],{"class":131},"\"",[107,192,193],{"class":120},"     # 提交\n",[107,195,197],{"class":109,"line":196},6,[107,198,199],{"emptyLinePlaceholder":79},"\n",[107,201,203,205,208,211,214],{"class":109,"line":202},7,[107,204,113],{"class":112},[107,206,207],{"class":116}," pull",[107,209,210],{"class":116}," origin",[107,212,213],{"class":116}," main",[107,215,216],{"class":120},"        # 拉取远程\n",[107,218,220,222,225,227,229],{"class":109,"line":219},8,[107,221,113],{"class":112},[107,223,224],{"class":116}," push",[107,226,210],{"class":116},[107,228,213],{"class":116},[107,230,231],{"class":120},"        # 推送到远程\n",[11,233,234],{"id":234},"分支操作",[98,236,238],{"className":100,"code":237,"language":102,"meta":67,"style":67},"git branch                  # 查看分支\ngit checkout -b new-branch  # 创建并切换分支\ngit merge feature-branch    # 合并分支\ngit branch -d old-branch    # 删除分支\ngit push origin --delete old-branch  # 删除远程分支\n",[104,239,240,250,266,279,294],{"__ignoreMap":67},[107,241,242,244,247],{"class":109,"line":80},[107,243,113],{"class":112},[107,245,246],{"class":116}," branch",[107,248,249],{"class":120},"                  # 查看分支\n",[107,251,252,254,257,260,263],{"class":109,"line":68},[107,253,113],{"class":112},[107,255,256],{"class":116}," checkout",[107,258,259],{"class":116}," -b",[107,261,262],{"class":116}," new-branch",[107,264,265],{"class":120},"  # 创建并切换分支\n",[107,267,268,270,273,276],{"class":109,"line":148},[107,269,113],{"class":112},[107,271,272],{"class":116}," merge",[107,274,275],{"class":116}," feature-branch",[107,277,278],{"class":120},"    # 合并分支\n",[107,280,281,283,285,288,291],{"class":109,"line":159},[107,282,113],{"class":112},[107,284,246],{"class":116},[107,286,287],{"class":116}," -d",[107,289,290],{"class":116}," old-branch",[107,292,293],{"class":120},"    # 删除分支\n",[107,295,296,298,300,302,305,307],{"class":109,"line":173},[107,297,113],{"class":112},[107,299,224],{"class":116},[107,301,210],{"class":116},[107,303,304],{"class":116}," --delete",[107,306,290],{"class":116},[107,308,309],{"class":120},"  # 删除远程分支\n",[11,311,312],{"id":312},"撤销操作",[98,314,316],{"className":100,"code":315,"language":102,"meta":67,"style":67},"git reset --soft HEAD~1     # 撤销 commit，保留更改\ngit reset --hard HEAD~1     # 撤销 commit，丢弃更改\ngit checkout -- \u003Cfile>      # 撤销文件修改\ngit revert \u003Ccommit-hash>    # 新建反向 commit\n",[104,317,318,334,348,370],{"__ignoreMap":67},[107,319,320,322,325,328,331],{"class":109,"line":80},[107,321,113],{"class":112},[107,323,324],{"class":116}," reset",[107,326,327],{"class":116}," --soft",[107,329,330],{"class":116}," HEAD~1",[107,332,333],{"class":120},"     # 撤销 commit，保留更改\n",[107,335,336,338,340,343,345],{"class":109,"line":68},[107,337,113],{"class":112},[107,339,324],{"class":116},[107,341,342],{"class":116}," --hard",[107,344,330],{"class":116},[107,346,347],{"class":120},"     # 撤销 commit，丢弃更改\n",[107,349,350,352,354,357,359,362,365,367],{"class":109,"line":148},[107,351,113],{"class":112},[107,353,256],{"class":116},[107,355,356],{"class":116}," --",[107,358,132],{"class":131},[107,360,361],{"class":116},"fil",[107,363,364],{"class":138},"e",[107,366,142],{"class":131},[107,368,369],{"class":120},"      # 撤销文件修改\n",[107,371,372,374,377,379,382,385,387],{"class":109,"line":159},[107,373,113],{"class":112},[107,375,376],{"class":116}," revert",[107,378,132],{"class":131},[107,380,381],{"class":116},"commit-has",[107,383,384],{"class":138},"h",[107,386,142],{"class":131},[107,388,389],{"class":120},"    # 新建反向 commit\n",[11,391,392],{"id":392},"储藏操作",[98,394,396],{"className":100,"code":395,"language":102,"meta":67,"style":67},"git stash                   # 储藏当前修改\ngit stash pop               # 恢复最近储藏\ngit stash list              # 列出所有储藏\ngit stash clear             # 清空所有储藏\n",[104,397,398,408,420,432],{"__ignoreMap":67},[107,399,400,402,405],{"class":109,"line":80},[107,401,113],{"class":112},[107,403,404],{"class":116}," stash",[107,406,407],{"class":120},"                   # 储藏当前修改\n",[107,409,410,412,414,417],{"class":109,"line":68},[107,411,113],{"class":112},[107,413,404],{"class":116},[107,415,416],{"class":116}," pop",[107,418,419],{"class":120},"               # 恢复最近储藏\n",[107,421,422,424,426,429],{"class":109,"line":148},[107,423,113],{"class":112},[107,425,404],{"class":116},[107,427,428],{"class":116}," list",[107,430,431],{"class":120},"              # 列出所有储藏\n",[107,433,434,436,438,441],{"class":109,"line":159},[107,435,113],{"class":112},[107,437,404],{"class":116},[107,439,440],{"class":116}," clear",[107,442,443],{"class":120},"             # 清空所有储藏\n",[445,446,447],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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);}",{"title":67,"searchDepth":68,"depth":68,"links":449},[450,451,452,453],{"id":96,"depth":68,"text":96},{"id":234,"depth":68,"text":234},{"id":312,"depth":68,"text":312},{"id":392,"depth":68,"text":392},"reference","2026-05-15","日常开发中高频使用的 Git 命令汇总","beginner",{},"\u002Fknowledge\u002Fgit-cheatsheet",{"title":91,"description":456},"knowledge\u002Fgit-cheatsheet",[113,463],"cheatsheet","8lyPBFyncXxcKmDfIj1BYyB_QjTwOlmIRLzvTn8gBsA",{"id":466,"title":467,"body":468,"category":661,"date":662,"description":663,"difficulty":457,"extension":77,"meta":664,"navigation":79,"order":80,"path":665,"seo":666,"stem":667,"tags":668,"__hash__":672},"knowledge\u002Fknowledge\u002Fnuxt-guide.md","Nuxt 3 项目搭建指南",{"type":8,"value":469,"toc":654},[470,473,476,489,492,529,532,540,543,598,601,651],[11,471,472],{"id":472},"环境准备",[16,474,475],{},"确认 Node.js 版本 >= 18：",[98,477,479],{"className":100,"code":478,"language":102,"meta":67,"style":67},"node -v\n",[104,480,481],{"__ignoreMap":67},[107,482,483,486],{"class":109,"line":80},[107,484,485],{"class":112},"node",[107,487,488],{"class":116}," -v\n",[11,490,491],{"id":491},"创建项目",[98,493,495],{"className":100,"code":494,"language":102,"meta":67,"style":67},"npx nuxi@latest init my-app\ncd my-app\nnpm run dev\n",[104,496,497,510,518],{"__ignoreMap":67},[107,498,499,502,505,507],{"class":109,"line":80},[107,500,501],{"class":112},"npx",[107,503,504],{"class":116}," nuxi@latest",[107,506,117],{"class":116},[107,508,509],{"class":116}," my-app\n",[107,511,512,516],{"class":109,"line":68},[107,513,515],{"class":514},"s2Zo4","cd",[107,517,509],{"class":116},[107,519,520,523,526],{"class":109,"line":148},[107,521,522],{"class":112},"npm",[107,524,525],{"class":116}," run",[107,527,528],{"class":116}," dev\n",[11,530,531],{"id":531},"目录结构",[98,533,538],{"className":534,"code":536,"language":537},[535],"language-text","my-app\u002F\n├── app.vue          # 入口文件\n├── nuxt.config.ts   # 配置文件\n├── pages\u002F           # 页面路由\n├── components\u002F      # 组件\n├── server\u002F          # 服务端 API\n└── public\u002F          # 静态资源\n","text",[104,539,536],{"__ignoreMap":67},[11,541,542],{"id":542},"添加模块",[98,544,546],{"className":100,"code":545,"language":102,"meta":67,"style":67},"npx nuxi module add ui      # UI 组件库\nnpx nuxi module add content # 内容管理\nnpx nuxi module add image   # 图片优化\n",[104,547,548,566,582],{"__ignoreMap":67},[107,549,550,552,555,558,560,563],{"class":109,"line":80},[107,551,501],{"class":112},[107,553,554],{"class":116}," nuxi",[107,556,557],{"class":116}," module",[107,559,164],{"class":116},[107,561,562],{"class":116}," ui",[107,564,565],{"class":120},"      # UI 组件库\n",[107,567,568,570,572,574,576,579],{"class":109,"line":68},[107,569,501],{"class":112},[107,571,554],{"class":116},[107,573,557],{"class":116},[107,575,164],{"class":116},[107,577,578],{"class":116}," content",[107,580,581],{"class":120}," # 内容管理\n",[107,583,584,586,588,590,592,595],{"class":109,"line":148},[107,585,501],{"class":112},[107,587,554],{"class":116},[107,589,557],{"class":116},[107,591,164],{"class":116},[107,593,594],{"class":116}," image",[107,596,597],{"class":120},"   # 图片优化\n",[11,599,600],{"id":600},"常用命令",[602,603,604,617],"table",{},[605,606,607],"thead",{},[608,609,610,614],"tr",{},[611,612,613],"th",{},"命令",[611,615,616],{},"说明",[618,619,620,631,641],"tbody",{},[608,621,622,628],{},[623,624,625],"td",{},[104,626,627],{},"npm run dev",[623,629,630],{},"启动开发服务器",[608,632,633,638],{},[623,634,635],{},[104,636,637],{},"npm run build",[623,639,640],{},"构建生产版本",[608,642,643,648],{},[623,644,645],{},[104,646,647],{},"npm run preview",[623,649,650],{},"预览构建结果",[445,652,653],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":67,"searchDepth":68,"depth":68,"links":655},[656,657,658,659,660],{"id":472,"depth":68,"text":472},{"id":491,"depth":68,"text":491},{"id":531,"depth":68,"text":531},{"id":542,"depth":68,"text":542},{"id":600,"depth":68,"text":600},"guides","2026-06-10","从零开始搭建 Nuxt 3 项目的完整步骤",{},"\u002Fknowledge\u002Fnuxt-guide",{"title":467,"description":663},"knowledge\u002Fnuxt-guide",[669,670,671],"nuxt","vue","setup","ilYR1f6qM0Olg8mUbQ3unRduUmgDkwx7NzQR-jhWpmI"]