[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71QD358H2DJ9THJRBP77T3T":3,"skill-same:01M71QD358H2DJ9THJRBP77T3T":107},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":24,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":14,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M71QD358H2DJ9THJRBP77T3T","vue-router-best-practices",null,"Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.","pattanation\u002FNorvik","pattanation","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F235419268?v=4","01M71M5THHYYB15ME8R2E4FCZG","Patta","01M71M5TJM1NDM992M8PDKYR2K",0,"MIT","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FSKILL.md",[19],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[25,26,27,28,29,30,31,32,33,34,35],"router","vue","vue router best practices","best practices","route","component","guards","github","patterns","navigation","lifecycle","2026-11-10 13:02:02",false,"---\nname: vue-router-best-practices\ndescription: \"Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.\"\nversion: 1.0.0\nlicense: MIT\nauthor: github.com\u002Fvuejs-ai\n---\n\nVue Router best practices, common gotchas, and navigation patterns.\n\n### Navigation Guards\n- Navigating between same route with different params → See [router-beforeenter-no-param-trigger](reference\u002Frouter-beforeenter-no-param-trigger.md)\n- Accessing component instance in beforeRouteEnter guard → See [router-beforerouteenter-no-this](reference\u002Frouter-beforerouteenter-no-this.md)\n- Navigation guard making API calls without awaiting → See [router-guard-async-await-pattern](reference\u002Frouter-guard-async-await-pattern.md)\n- Users trapped in infinite redirect loops → See [router-navigation-guard-infinite-loop](reference\u002Frouter-navigation-guard-infinite-loop.md)\n- Navigation guard using deprecated next() function → See [router-navigation-guard-next-deprecated](reference\u002Frouter-navigation-guard-next-deprecated.md)\n\n### Route Lifecycle\n- Stale data when navigating between same route → See [router-param-change-no-lifecycle](reference\u002Frouter-param-change-no-lifecycle.md)\n- Event listeners persisting after component unmounts → See [router-simple-routing-cleanup](reference\u002Frouter-simple-routing-cleanup.md)\n\n### Setup\n- Building production single-page application → See [router-use-vue-router-for-production](reference\u002Frouter-use-vue-router-for-production.md)\n","Vue Router best practices, common gotchas, and navigation patterns.\n\n### Navigation Guards\n- Navigating between same route with different params → See [router-beforeenter-no-param-trigger](reference\u002Frouter-beforeenter-no-param-trigger.md)\n- Accessing component instance in beforeRouteEnter guard → See [router-beforerouteenter-no-this](reference\u002Frouter-beforerouteenter-no-this.md)\n- Navigation guard making API calls without awaiting → See [router-guard-async-await-pattern](reference\u002Frouter-guard-async-await-pattern.md)\n- Users trapped in infinite redirect loops → See [router-navigation-guard-infinite-loop](reference\u002Frouter-navigation-guard-infinite-loop.md)\n- Navigation guard using deprecated next() function → See [router-navigation-guard-next-deprecated](reference\u002Frouter-navigation-guard-next-deprecated.md)\n\n### Route Lifecycle\n- Stale data when navigating between same route → See [router-param-change-no-lifecycle](reference\u002Frouter-param-change-no-lifecycle.md)\n- Event listeners persisting after component unmounts → See [router-simple-routing-cleanup](reference\u002Frouter-simple-routing-cleanup.md)\n\n### Setup\n- Building production single-page application → See [router-use-vue-router-for-production](reference\u002Frouter-use-vue-router-for-production.md)\n",{"name":5,"author":41,"license":15,"version":42,"description":7},"github.com\u002Fvuejs-ai","1.0.0","claude\u002Finstall-gsd-build-foQdV","d86cd127f527124b5fd0fd0bc679a4d79b7d01d7",".agents\u002Fskills\u002Fvue-router-best-practices","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik","https:\u002F\u002Fnorvik-orpin.vercel.app","https:\u002F\u002Fgithub.com\u002Fpattanation","2026-07-17 11:17:04",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add pattanation\u002FNorvik --skill vue-router-best-practices",{"tool":56,"command":57},"bunx","bunx skills add pattanation\u002FNorvik --skill vue-router-best-practices",{"tool":59,"command":60},"pnpm","pnpm dlx skills add pattanation\u002FNorvik --skill vue-router-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FSKILL.md",true,[64,69,75,79,83,87,91,95,99,103],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":16},"LICENSE.md","LICENSE","许可证",1098,{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"reference\u002Frouter-beforeenter-no-param-trigger.md","REFERENCE","参考文档",4916,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002Freference\u002Frouter-beforeenter-no-param-trigger.md",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"reference\u002Frouter-beforerouteenter-no-this.md",5022,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002Freference\u002Frouter-beforerouteenter-no-this.md",{"path":80,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":81,"sourceHtmlUrl":82},"reference\u002Frouter-guard-async-await-pattern.md",5899,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002Freference\u002Frouter-guard-async-await-pattern.md",{"path":84,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":85,"sourceHtmlUrl":86},"reference\u002Frouter-navigation-guard-infinite-loop.md",5491,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002Freference\u002Frouter-navigation-guard-infinite-loop.md",{"path":88,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":89,"sourceHtmlUrl":90},"reference\u002Frouter-navigation-guard-next-deprecated.md",4277,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002Freference\u002Frouter-navigation-guard-next-deprecated.md",{"path":92,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":93,"sourceHtmlUrl":94},"reference\u002Frouter-param-change-no-lifecycle.md",5061,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002Freference\u002Frouter-param-change-no-lifecycle.md",{"path":96,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":97,"sourceHtmlUrl":98},"reference\u002Frouter-simple-routing-cleanup.md",5349,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002Freference\u002Frouter-simple-routing-cleanup.md",{"path":100,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":101,"sourceHtmlUrl":102},"reference\u002Frouter-use-vue-router-for-production.md",5323,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002Freference\u002Frouter-use-vue-router-for-production.md",{"path":104,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":105,"sourceHtmlUrl":106},"SYNC.md",161,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FSYNC.md",[108,138,164,185,204,227],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":112,"licenseFileUrl":113,"sourceHtmlUrl":114,"categories":115,"keywords":120,"publishedAt":36},"01M71QDV4DM8T19HEHWATEF1K4","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[116,119],{"categoryNo":117,"categoryName":118,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},[121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137],"webapp","testing","webapp testing","for","applications","local","frontend","debugging","toolkit","logs","browser","with","playwright","web","behavior","ui","screenshots",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":112,"licenseFileUrl":142,"sourceHtmlUrl":143,"categories":144,"keywords":146,"publishedAt":36},"01M71QDH2GGMXGA9105C9W1N7B","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fweb-artifacts-builder\u002FSKILL.md",[145],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},[147,148,149,134,150,151,152,124,153,154,127,155,156,157,158,159,160,161,162,163],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","use","file","components","react","multi","state","routing","state management",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":168,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":36},"01M71QD9T2XC3EWMQNN9ACNWQ1","vueuse-functions","Apply VueUse composables where appropriate to build concise, maintainable Vue.js \u002F Nuxt features.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvueuse-functions\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvueuse-functions\u002FSKILL.md",[171],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},[173,174,175,176,177,178,32,179,180,181,182,26,183,184],"functions","vueuse","vueuse functions","project","nuxt","apply","concise","build","https","features","js","composables",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":189,"sourceHtmlUrl":190,"categories":191,"keywords":194,"publishedAt":36},"01M71QD51HWSGYMCMB7RW7PGK8","vue-testing-best-practices","Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FSKILL.md",[192,193],{"categoryNo":117,"categoryName":118,"taxonomyType":22,"taxonomyTypeDesc":23},{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},[195,122,196,26,28,133,197,198,30,32,199,124,200,201,202,156,33,183,203],"vue testing best practices","testing best practices","test","testing patterns","vitest","mocking","e2e","utils","e2e testing",{"skillNo":205,"name":206,"nameZh":6,"description":207,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":208,"sourceHtmlUrl":209,"categories":210,"keywords":212,"publishedAt":36},"01M71QCYPNWDE2MQZ1TF3ED5S4","vue-best-practices","MUST be used for Vue.js tasks. Strongly recommends Composition API with `\u003Cscript setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-best-practices\u002FSKILL.md",[211],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},[213,26,28,214,176,215,216,217,25,218,219,220,221,222,223,124,224,156,225,226],"vue best practices","Composition","files","tasks","api","pinia","work","options","ssr","typescript","as","vite","load","standard",{"skillNo":228,"name":229,"nameZh":6,"description":230,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":112,"licenseFileUrl":6,"sourceHtmlUrl":231,"categories":232,"keywords":239,"publishedAt":36},"01M71QCT1J9SE670TZJENMNH24","vss-summarize-video","Use to summarize a recorded video via the LVS summarization microservice (HITL-gated) with a VLM fallback. Not for report generation or live RTSP captioning.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-summarize-video\u002FSKILL.md",[233,236],{"categoryNo":234,"categoryName":235,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":237,"categoryName":238,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000021","资料检索与研究",[240,241,242,243,244,245,246,247,248,249,250,251,124,156,132,32,252,253,254,255],"Video","vss summarize video","summarize","LVS","search","captioning","Blueprint","team","live","fallback","microservice","NVIDIA","operational","via","generation","gated"]