[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CFRYN31RFQFTE41Z6DCGKE":3,"skill-same:01M6CFRYN31RFQFTE41Z6DCGKE":87},{"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":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M6CFRYN31RFQFTE41Z6DCGKE","vue-pinia-best-practices",null,"Pinia stores, state management patterns, store setup, and reactivity with stores.","rockcookies\u002Fskills","rockcookies","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3498265?v=4","01M6CF9C16X3SDSKZX6ANH7HQM","Jacob He","01M6CF9C53JP821FCW6R9B00AJ",1,"MIT","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-pinia-best-practices\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32],"best practices","vue","pinia","vue pinia best practices","github","setup","state management","state","management","2026-11-10 10:12:30",false,"---\nname: vue-pinia-best-practices\ndescription: >-\n  Pinia stores, state management patterns, store setup, and reactivity with\n  stores.\nversion: 1.0.0\nlicense: MIT\nauthor: github.com\u002Fvuejs-ai\n---\n\nPinia best practices, common gotchas, and state management patterns.\n\n### Store Setup\n- Getting \"getActivePinia was called\" error at startup → See [pinia-no-active-pinia-error](reference\u002Fpinia-no-active-pinia-error.md)\n- Setup stores missing state in DevTools or SSR → See [pinia-setup-store-return-all-state](reference\u002Fpinia-setup-store-return-all-state.md)\n\n### Reactivity\n- Store destructuring stops updating UI reactively → See [pinia-store-destructuring-breaks-reactivity](reference\u002Fpinia-store-destructuring-breaks-reactivity.md)\n- Store methods lose context in template calls → See [store-method-binding-parentheses](reference\u002Fstore-method-binding-parentheses.md)\n\n### State Patterns\n- Filters reset on refresh or can't be shared → See [state-url-for-ephemeral-filters](reference\u002Fstate-url-for-ephemeral-filters.md)\n- Building production app without DevTools or conventions → See [state-use-pinia-for-large-apps](reference\u002Fstate-use-pinia-for-large-apps.md)\n","Pinia best practices, common gotchas, and state management patterns.\n\n### Store Setup\n- Getting \"getActivePinia was called\" error at startup → See [pinia-no-active-pinia-error](reference\u002Fpinia-no-active-pinia-error.md)\n- Setup stores missing state in DevTools or SSR → See [pinia-setup-store-return-all-state](reference\u002Fpinia-setup-store-return-all-state.md)\n\n### Reactivity\n- Store destructuring stops updating UI reactively → See [pinia-store-destructuring-breaks-reactivity](reference\u002Fpinia-store-destructuring-breaks-reactivity.md)\n- Store methods lose context in template calls → See [store-method-binding-parentheses](reference\u002Fstore-method-binding-parentheses.md)\n\n### State Patterns\n- Filters reset on refresh or can't be shared → See [state-url-for-ephemeral-filters](reference\u002Fstate-url-for-ephemeral-filters.md)\n- Building production app without DevTools or conventions → See [state-use-pinia-for-large-apps](reference\u002Fstate-use-pinia-for-large-apps.md)\n",{"name":5,"author":38,"license":15,"version":39,"description":7},"github.com\u002Fvuejs-ai","1.0.0","main","c349be0704bffe54a7191d1412faf564b08983ca","skills\u002Fvuejs-ai\u002Fvue-pinia-best-practices",0,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills","https:\u002F\u002Fgithub.com\u002Frockcookies","2026-11-12 14:42:52",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add rockcookies\u002Fskills --skill vue-pinia-best-practices",{"tool":53,"command":54},"bunx","bunx skills add rockcookies\u002Fskills --skill vue-pinia-best-practices",{"tool":56,"command":57},"pnpm","pnpm dlx skills add rockcookies\u002Fskills --skill vue-pinia-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-pinia-best-practices\u002FSKILL.md",true,[61,67,71,75,79,83],{"path":62,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":66},"reference\u002Fpinia-no-active-pinia-error.md","REFERENCE","参考文档",6407,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-pinia-best-practices\u002Freference\u002Fpinia-no-active-pinia-error.md",{"path":68,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":69,"sourceHtmlUrl":70},"reference\u002Fpinia-setup-store-return-all-state.md",5935,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-pinia-best-practices\u002Freference\u002Fpinia-setup-store-return-all-state.md",{"path":72,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":73,"sourceHtmlUrl":74},"reference\u002Fpinia-store-destructuring-breaks-reactivity.md",5192,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-pinia-best-practices\u002Freference\u002Fpinia-store-destructuring-breaks-reactivity.md",{"path":76,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":77,"sourceHtmlUrl":78},"reference\u002Fstate-url-for-ephemeral-filters.md",7225,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-pinia-best-practices\u002Freference\u002Fstate-url-for-ephemeral-filters.md",{"path":80,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":81,"sourceHtmlUrl":82},"reference\u002Fstate-use-pinia-for-large-apps.md",6390,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-pinia-best-practices\u002Freference\u002Fstate-use-pinia-for-large-apps.md",{"path":84,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":85,"sourceHtmlUrl":86},"reference\u002Fstore-method-binding-parentheses.md",5309,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-pinia-best-practices\u002Freference\u002Fstore-method-binding-parentheses.md",[88,112,126,148,160,183],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":33},"01M6WMNKD3Y4H9FGM8Q901F507","hierarchical-agents-md","层级 AGENTS.md \u002F README.md：init、update、audit、reorganize、trim。 初始化 Agent 指令、代码改动后同步文档、检查文档漂移、重组仓库文档层级、精简规则与 Skills。 Not for 写业务代码或生成文档站点。","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcustom\u002Fhierarchical-agents-md\u002FSKILL.md",[],[95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111],"hierarchical agents md","agents md","packages","update","README","for","third-party","party","true","python","init","git","change","maintenance","初始化","audit","文档",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":33},"01M6CFS6BRTQPFZCDHQP97HYXR","vueuse-functions","Apply VueUse composables where appropriate to build concise, maintainable Vue.js \u002F Nuxt features.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvueuse\u002Fvueuse-functions\u002FSKILL.md",[118],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[120,121,28,122,123,124,25,125],"functions","vueuse functions","build","nuxt","https","js",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":136,"publishedAt":33},"01M6CFS34MDQXZPAWQFE5D7VGT","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\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-testing-best-practices\u002FSKILL.md",[132,135],{"categoryNo":133,"categoryName":134,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[24,25,137,138,139,140,141,142,143,144,28,145,146,147,125],"testing best practices","testing","vue testing best practices","e2e testing","playwright","test","testing patterns","component","vitest","e2e","use",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":155,"publishedAt":33},"01M6CFS0N19MSJNTVM9AEQ7Z73","vue-router-best-practices","Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-router-best-practices\u002FSKILL.md",[154],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[24,156,25,157,28,144,158,159],"vue router best practices","router","navigation","lifecycle",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":175,"publishedAt":33},"01M6CFRW2DKXJHP05DYJ3P3Y2S","vue-options-api-best-practices","Vue 3 Options API style (data(), methods, this context). Each reference shows Options API solution only.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-options-api-best-practices\u002FSKILL.md",[166,167,170],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":168,"categoryName":169,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":171,"categoryName":172,"taxonomyType":173,"taxonomyTypeDesc":174},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[176,25,24,177,178,179,180,28,181,182],"vue options api best practices","api","only","data","reference","methods","context",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":190,"publishedAt":33},"01M6CFRT7422CAPBDPHQN7F8AJ","vue-jsx-best-practices","JSX syntax in Vue (e.g., class vs className, JSX plugin config).","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-jsx-best-practices\u002FSKILL.md",[189],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[25,24,191,192,193,28,194],"vue jsx best practices","syntax","plugin","config"]