[{"data":1,"prerenderedAt":366},["ShallowReactive",2],{"navigation_docs":3,"diagnostic-content-VUE0014":44},[4,8,12,16,20,24,28,32,36,40],{"title":5,"path":6,"stem":7},"CLI","\u002Fcli","1.cli",{"title":9,"path":10,"stem":11},"Nuxt","\u002Fnuxt","2.nuxt",{"title":13,"path":14,"stem":15},"Vue","\u002Fvue","3.vue",{"title":17,"path":18,"stem":19},"Vite","\u002Fvite","4.vite",{"title":21,"path":22,"stem":23},"Nitro","\u002Fnitro","5.nitro",{"title":25,"path":26,"stem":27},"TypeScript","\u002Ftypescript","6.typescript",{"title":29,"path":30,"stem":31},"shadcn","\u002Fshadcn","7.shadcn",{"title":33,"path":34,"stem":35},"Package","\u002Fpackage","8.package",{"title":37,"path":38,"stem":39},"Extending Doctor","\u002Fextending","9.extending",{"title":41,"path":42,"stem":43},"Pinia","\u002Fpinia","9.pinia",{"id":45,"title":46,"body":47,"category":53,"code":356,"description":357,"docsUrl":54,"extension":358,"fix":81,"framework":99,"meta":359,"navigation":360,"pack":56,"path":361,"ruleId":57,"rulePath":58,"seo":362,"severity":59,"source":60,"sourceUrl":61,"stem":363,"why":364,"__hash__":365},"diagnostics\u002Fdiagnostics\u002FVUE0014.md","VUE0014: Prefer defineModel for component v-model",{"type":48,"value":49,"toc":346},"minimark",[50,62,67,75,79,82,86,91,94,220,223,278,282,285,315,319,331,335,343],[51,52],"rule-metadata",{"category":53,"docsUrl":54,"fix":55,"pack":56,"ruleId":57,"rulePath":58,"severity":59,"source":60,"sourceUrl":61},"style","https:\u002F\u002Fvuejs.org\u002Fapi\u002Fsfc-script-setup.html#definemodel","suggestion","vite-doctor\u002Fvue","vue\u002Fstyle\u002Fprefer-define-model","\u002Fvue\u002Frules\u002Fstyle\u002Fprefer-define-model","warn","src\u002Frule-packs\u002Fvue\u002Frules\u002Fvue\u002Fprefer-define-model.ts","https:\u002F\u002Fgithub.com\u002Fonmax\u002Fvite-doctor\u002Fblob\u002Fmain\u002Fsrc\u002Frule-packs\u002Fvue\u002Frules\u002Fvue\u002Fprefer-define-model.ts",[63,64,66],"h2",{"id":65},"why-it-happens","Why it happens",[68,69,70,74],"p",{},[71,72,73],"code",{},"defineModel()"," keeps a component's model prop, update event, modifiers, and type in one compiler-checked declaration.",[63,76,78],{"id":77},"fix","Fix",[68,80,81],{},"Use the Vue-supported define model pattern instead.",[63,83,85],{"id":84},"example","Example",[87,88,90],"h3",{"id":89},"use-definemodel","Use defineModel",[68,92,93],{},"Before",[95,96,101],"pre",{"className":97,"code":98,"language":99,"meta":100,"style":100},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\ndefineProps\u003C{ modelValue: string }>()\nconst emit = defineEmits\u003C{ 'update:modelValue': [value: string] }>()\n\u003C\u002Fscript>\n","vue","",[71,102,103,138,165,210],{"__ignoreMap":100},[104,105,108,112,116,120,123,126,129,133,135],"span",{"class":106,"line":107},"line",1,[104,109,111],{"class":110},"sMK4o","\u003C",[104,113,115],{"class":114},"swJcz","script",[104,117,119],{"class":118},"spNyl"," setup",[104,121,122],{"class":118}," lang",[104,124,125],{"class":110},"=",[104,127,128],{"class":110},"\"",[104,130,132],{"class":131},"sfazB","ts",[104,134,128],{"class":110},[104,136,137],{"class":110},">\n",[104,139,141,145,148,151,154,158,161],{"class":106,"line":140},2,[104,142,144],{"class":143},"s2Zo4","defineProps",[104,146,147],{"class":110},"\u003C{",[104,149,150],{"class":114}," modelValue",[104,152,153],{"class":110},":",[104,155,157],{"class":156},"sBMFI"," string",[104,159,160],{"class":110}," }>",[104,162,164],{"class":163},"sTEyZ","()\n",[104,166,168,171,174,176,179,181,184,187,190,192,195,198,200,202,205,208],{"class":106,"line":167},3,[104,169,170],{"class":118},"const",[104,172,173],{"class":163}," emit ",[104,175,125],{"class":110},[104,177,178],{"class":143}," defineEmits",[104,180,147],{"class":110},[104,182,183],{"class":110}," '",[104,185,186],{"class":131},"update:modelValue",[104,188,189],{"class":110},"'",[104,191,153],{"class":110},[104,193,194],{"class":163}," [",[104,196,197],{"class":156},"value",[104,199,153],{"class":110},[104,201,157],{"class":156},[104,203,204],{"class":163},"] ",[104,206,207],{"class":110},"}>",[104,209,164],{"class":163},[104,211,213,216,218],{"class":106,"line":212},4,[104,214,215],{"class":110},"\u003C\u002F",[104,217,115],{"class":114},[104,219,137],{"class":110},[68,221,222],{},"After",[95,224,226],{"className":97,"code":225,"language":99,"meta":100,"style":100},"\u003Cscript setup lang=\"ts\">\nconst modelValue = defineModel\u003Cstring>()\n\u003C\u002Fscript>\n",[71,227,228,248,270],{"__ignoreMap":100},[104,229,230,232,234,236,238,240,242,244,246],{"class":106,"line":107},[104,231,111],{"class":110},[104,233,115],{"class":114},[104,235,119],{"class":118},[104,237,122],{"class":118},[104,239,125],{"class":110},[104,241,128],{"class":110},[104,243,132],{"class":131},[104,245,128],{"class":110},[104,247,137],{"class":110},[104,249,250,252,255,257,260,262,265,268],{"class":106,"line":140},[104,251,170],{"class":118},[104,253,254],{"class":163}," modelValue ",[104,256,125],{"class":110},[104,258,259],{"class":143}," defineModel",[104,261,111],{"class":110},[104,263,264],{"class":156},"string",[104,266,267],{"class":110},">",[104,269,164],{"class":163},[104,271,272,274,276],{"class":106,"line":167},[104,273,215],{"class":110},[104,275,115],{"class":114},[104,277,137],{"class":110},[63,279,281],{"id":280},"verify-the-fix","Verify the fix",[68,283,284],{},"Run only this rule after editing so the report stays focused on the diagnostic you are closing:",[95,286,290],{"className":287,"code":288,"language":289,"meta":100,"style":100},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm vite-doctor . --framework vue --rules vue\u002Fstyle\u002Fprefer-define-model\n","bash",[71,291,292],{"__ignoreMap":100},[104,293,294,297,300,303,306,309,312],{"class":106,"line":107},[104,295,296],{"class":156},"pnpm",[104,298,299],{"class":131}," vite-doctor",[104,301,302],{"class":131}," .",[104,304,305],{"class":131}," --framework",[104,307,308],{"class":131}," vue",[104,310,311],{"class":131}," --rules",[104,313,314],{"class":131}," vue\u002Fstyle\u002Fprefer-define-model\n",[63,316,318],{"id":317},"useful-links","Useful links",[320,321,322],"ul",{},[323,324,325],"li",{},[326,327,330],"a",{"href":54,"rel":328},[329],"nofollow","Upstream docs",[63,332,334],{"id":333},"related-rule","Related rule",[320,336,337],{},[323,338,339],{},[326,340,341],{"href":58},[71,342,57],{},[53,344,345],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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":100,"searchDepth":140,"depth":140,"links":347},[348,349,350,353,354,355],{"id":65,"depth":140,"text":66},{"id":77,"depth":140,"text":78},{"id":84,"depth":140,"text":85,"children":351},[352],{"id":89,"depth":167,"text":90},{"id":280,"depth":140,"text":281},{"id":317,"depth":140,"text":318},{"id":333,"depth":140,"text":334},"VUE0014","Finds Vue style code that should use the supported define model pattern instead.","md",{},true,"\u002Fdiagnostics\u002Fvue0014",{"title":46,"description":357},"diagnostics\u002FVUE0014","defineModel() keeps a component's model prop, update event, modifiers, and type in one compiler-checked declaration.","hySZCLbzr6v_SgHbZgHBQrgdXxSYJj07aFBBF8oX-Vo",1791309482700]