[{"data":1,"prerenderedAt":468},["ShallowReactive",2],{"navigation":3,"-frameworks-vue":65,"-frameworks-vue-surround":465},[4,15,29,47],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Omni Async","\u002Fguide","1.guide\u002F1.index",[9,11],{"title":5,"path":6,"stem":7,"icon":10},"i-lucide-book-open",{"title":12,"path":13,"stem":14,"icon":10},"Quick start","\u002Fguide\u002Fquick-start","1.guide\u002F2.quick-start",{"title":16,"path":17,"stem":18,"children":19},"Async state","\u002Fconcepts","2.concepts\u002F1.index",[20,21,25],{"title":16,"path":17,"stem":18},{"title":22,"path":23,"stem":24},"Concurrency and cancellation","\u002Fconcepts\u002Fconcurrency-and-cancellation","2.concepts\u002F2.concurrency-and-cancellation",{"title":26,"path":27,"stem":28},"Notifications and equality","\u002Fconcepts\u002Fnotifications","2.concepts\u002F3.notifications",{"title":30,"path":31,"stem":32,"children":33},"Framework adapters","\u002Fframeworks","3.frameworks\u002F1.index",[34,35,39,43],{"title":30,"path":31,"stem":32},{"title":36,"path":37,"stem":38},"React","\u002Fframeworks\u002Freact","3.frameworks\u002F2.react",{"title":40,"path":41,"stem":42},"Vue","\u002Fframeworks\u002Fvue","3.frameworks\u002F3.vue",{"title":44,"path":45,"stem":46},"Svelte","\u002Fframeworks\u002Fsvelte","3.frameworks\u002F4.svelte",{"title":48,"path":49,"stem":50,"children":51},"Core API","\u002Fapi","4.api\u002F1.index",[52,53,57,61],{"title":48,"path":49,"stem":50},{"title":54,"path":55,"stem":56},"React API","\u002Fapi\u002Freact","4.api\u002F2.react",{"title":58,"path":59,"stem":60},"Vue API","\u002Fapi\u002Fvue","4.api\u002F3.vue",{"title":62,"path":63,"stem":64},"Svelte API","\u002Fapi\u002Fsvelte","4.api\u002F4.svelte",{"id":66,"title":40,"body":67,"description":80,"extension":460,"meta":461,"navigation":462,"path":41,"seo":463,"stem":42,"__hash__":464},"content\u002F3.frameworks\u002F3.vue.md",{"type":68,"value":69,"toc":456},"minimark",[70,74,100,105,394,401,405,408,449,452],[71,72,73],"p",{},"Install the adapter alongside Vue 3.5 or newer:",[75,76,81],"pre",{"className":77,"code":78,"language":79,"meta":80,"style":80},"language-bash shiki shiki-themes github-light github-dark github-dark","pnpm add @omni-async\u002Fvue\n","bash","",[82,83,84],"code",{"__ignoreMap":80},[85,86,89,93,97],"span",{"class":87,"line":88},"line",1,[85,90,92],{"class":91},"shcOC","pnpm",[85,94,96],{"class":95},"sfrk1"," add",[85,98,99],{"class":95}," @omni-async\u002Fvue\n",[101,102,104],"h2",{"id":103},"query","Query",[75,106,110],{"className":107,"code":108,"language":109,"meta":80,"style":80},"language-vue shiki shiki-themes github-light github-dark github-dark","\u003Cscript setup lang=\"ts\">\nimport { useQuery } from \"@omni-async\u002Fvue\";\n\nconst users = useQuery(\n  async (team: string) => {\n    const response = await fetch(`\u002Fapi\u002Fteams\u002F${team}\u002Fusers`);\n    if (!response.ok) throw new Error(\"Unable to load users\");\n    return response.json() as Promise\u003Cstring[]>;\n  },\n  { initial: () => [] },\n);\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cbutton :disabled=\"users.loading.value\" @click=\"users.trigger('platform')\">Load users\u003C\u002Fbutton>\n\u003C\u002Ftemplate>\n","vue",[82,111,112,137,156,163,182,210,241,271,300,306,323,328,338,343,353,385],{"__ignoreMap":80},[85,113,114,118,122,125,128,131,134],{"class":87,"line":88},[85,115,117],{"class":116},"slsVL","\u003C",[85,119,121],{"class":120},"sByVh","script",[85,123,124],{"class":91}," setup",[85,126,127],{"class":91}," lang",[85,129,130],{"class":116},"=",[85,132,133],{"class":95},"\"ts\"",[85,135,136],{"class":116},">\n",[85,138,140,144,147,150,153],{"class":87,"line":139},2,[85,141,143],{"class":142},"so5gQ","import",[85,145,146],{"class":116}," { useQuery } ",[85,148,149],{"class":142},"from",[85,151,152],{"class":95}," \"@omni-async\u002Fvue\"",[85,154,155],{"class":116},";\n",[85,157,159],{"class":87,"line":158},3,[85,160,162],{"emptyLinePlaceholder":161},true,"\n",[85,164,166,169,173,176,179],{"class":87,"line":165},4,[85,167,168],{"class":142},"const",[85,170,172],{"class":171},"suiK_"," users",[85,174,175],{"class":142}," =",[85,177,178],{"class":91}," useQuery",[85,180,181],{"class":116},"(\n",[85,183,185,188,191,195,198,201,204,207],{"class":87,"line":184},5,[85,186,187],{"class":142},"  async",[85,189,190],{"class":116}," (",[85,192,194],{"class":193},"sQHwn","team",[85,196,197],{"class":142},":",[85,199,200],{"class":171}," string",[85,202,203],{"class":116},") ",[85,205,206],{"class":142},"=>",[85,208,209],{"class":116}," {\n",[85,211,213,216,219,221,224,227,230,233,235,238],{"class":87,"line":212},6,[85,214,215],{"class":142},"    const",[85,217,218],{"class":171}," response",[85,220,175],{"class":142},[85,222,223],{"class":142}," await",[85,225,226],{"class":91}," fetch",[85,228,229],{"class":116},"(",[85,231,232],{"class":95},"`\u002Fapi\u002Fteams\u002F${",[85,234,194],{"class":116},[85,236,237],{"class":95},"}\u002Fusers`",[85,239,240],{"class":116},");\n",[85,242,244,247,249,252,255,258,261,264,266,269],{"class":87,"line":243},7,[85,245,246],{"class":142},"    if",[85,248,190],{"class":116},[85,250,251],{"class":142},"!",[85,253,254],{"class":116},"response.ok) ",[85,256,257],{"class":142},"throw",[85,259,260],{"class":142}," new",[85,262,263],{"class":91}," Error",[85,265,229],{"class":116},[85,267,268],{"class":95},"\"Unable to load users\"",[85,270,240],{"class":116},[85,272,274,277,280,283,286,289,292,294,297],{"class":87,"line":273},8,[85,275,276],{"class":142},"    return",[85,278,279],{"class":116}," response.",[85,281,282],{"class":91},"json",[85,284,285],{"class":116},"() ",[85,287,288],{"class":142},"as",[85,290,291],{"class":91}," Promise",[85,293,117],{"class":116},[85,295,296],{"class":171},"string",[85,298,299],{"class":116},"[]>;\n",[85,301,303],{"class":87,"line":302},9,[85,304,305],{"class":116},"  },\n",[85,307,309,312,315,318,320],{"class":87,"line":308},10,[85,310,311],{"class":116},"  { ",[85,313,314],{"class":91},"initial",[85,316,317],{"class":116},": () ",[85,319,206],{"class":142},[85,321,322],{"class":116}," [] },\n",[85,324,326],{"class":87,"line":325},11,[85,327,240],{"class":116},[85,329,331,334,336],{"class":87,"line":330},12,[85,332,333],{"class":116},"\u003C\u002F",[85,335,121],{"class":120},[85,337,136],{"class":116},[85,339,341],{"class":87,"line":340},13,[85,342,162],{"emptyLinePlaceholder":161},[85,344,346,348,351],{"class":87,"line":345},14,[85,347,117],{"class":116},[85,349,350],{"class":120},"template",[85,352,136],{"class":116},[85,354,356,359,362,365,367,370,373,375,378,381,383],{"class":87,"line":355},15,[85,357,358],{"class":116},"  \u003C",[85,360,361],{"class":120},"button",[85,363,364],{"class":91}," :disabled",[85,366,130],{"class":116},[85,368,369],{"class":95},"\"users.loading.value\"",[85,371,372],{"class":91}," @click",[85,374,130],{"class":116},[85,376,377],{"class":95},"\"users.trigger('platform')\"",[85,379,380],{"class":116},">Load users\u003C\u002F",[85,382,361],{"class":120},[85,384,136],{"class":116},[85,386,388,390,392],{"class":87,"line":387},16,[85,389,333],{"class":116},[85,391,350],{"class":120},[85,393,136],{"class":116},[71,395,396,397,400],{},"The result fields are Vue refs. ",[82,398,399],{},"useAsync"," automatically unsubscribes and invalidates active operations when its current effect scope is disposed.",[101,402,404],{"id":403},"shared-data-ref","Shared data ref",[71,406,407],{},"Vue queries can write into an existing ref:",[75,409,413],{"className":410,"code":411,"language":412,"meta":80,"style":80},"language-ts shiki shiki-themes github-light github-dark github-dark","const data = shallowRef\u003CUser[]>();\nconst query = useQuery(loadUsers, { data });\n","ts",[82,414,415,435],{"__ignoreMap":80},[85,416,417,419,422,424,427,429,432],{"class":87,"line":88},[85,418,168],{"class":142},[85,420,421],{"class":171}," data",[85,423,175],{"class":142},[85,425,426],{"class":91}," shallowRef",[85,428,117],{"class":116},[85,430,431],{"class":91},"User",[85,433,434],{"class":116},"[]>();\n",[85,436,437,439,442,444,446],{"class":87,"line":139},[85,438,168],{"class":142},[85,440,441],{"class":171}," query",[85,443,175],{"class":142},[85,445,178],{"class":91},[85,447,448],{"class":116},"(loadUsers, { data });\n",[71,450,451],{},"Successful results update the provided ref, allowing state ownership to remain outside the composable.",[453,454,455],"style",{},"html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}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 .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sByVh, html code.shiki .sByVh{--shiki-light:#22863A;--shiki-default:#85E89D;--shiki-dark:#85E89D}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}",{"title":80,"searchDepth":139,"depth":139,"links":457},[458,459],{"id":103,"depth":139,"text":104},{"id":403,"depth":139,"text":404},"md",{},{},{"title":40,"description":80},"iRxoW1MZyNbo91YXYcgSg1ErwFxUaHoh1Cp5LDiKKTU",[466,467],{"title":36,"path":37,"stem":38,"description":80,"children":-1},{"title":44,"path":45,"stem":46,"description":80,"children":-1},1786006626291]