From 07077dd93feb510f61b209fbc7dca852aa89b178 Mon Sep 17 00:00:00 2001 From: YongGit <1013588891@qq.com> Date: Sun, 12 May 2024 21:42:29 +0800 Subject: [PATCH] auto --- hooks/404.html | 4 ++-- .../chunks/{Wave.2a7b5754.js => Wave.55507600.js} | 2 +- .../chunks/{demo.fc72dc8f.js => demo.ef73852f.js} | 0 ...en_index.md.73c7f509.js => en_index.md.16c82b5d.js} | 2 +- ...d.73c7f509.lean.js => en_index.md.16c82b5d.lean.js} | 2 +- ...7069af08.js => en_useSetState_index.md.f049ade8.js} | 2 +- ...ean.js => en_useSetState_index.md.f049ade8.lean.js} | 2 +- .../{index.md.08000111.js => index.md.d89509a8.js} | 2 +- ...x.md.08000111.lean.js => index.md.d89509a8.lean.js} | 2 +- .../assets/{style.3a6a2fc5.css => style.df3f2973.css} | 2 +- ...md.0693216a.js => useSetState_index.md.e8e67cdc.js} | 2 +- ...a.lean.js => useSetState_index.md.e8e67cdc.lean.js} | 2 +- hooks/en/guide/index.html | 4 ++-- hooks/en/index.html | 10 +++++----- hooks/en/migrate/index.html | 4 ++-- hooks/en/onlineTeaching/index.html | 4 ++-- hooks/en/useAsyncOrder/index.html | 4 ++-- hooks/en/useBoolean/index.html | 4 ++-- hooks/en/useCookieState/index.html | 4 ++-- hooks/en/useCounter/index.html | 4 ++-- hooks/en/useDarkMode/index.html | 4 ++-- hooks/en/useDebounce/index.html | 4 ++-- hooks/en/useDebounceFn/index.html | 4 ++-- hooks/en/useDrop/index.html | 4 ++-- hooks/en/useElementBounding/index.html | 4 ++-- hooks/en/useEventEmitter/index.html | 4 ++-- hooks/en/useEventListener/index.html | 4 ++-- hooks/en/useExternal/index.html | 4 ++-- hooks/en/useFavicon/index.html | 4 ++-- hooks/en/useFetchs/index.html | 4 ++-- hooks/en/useFocusWithin/index.html | 4 ++-- hooks/en/useFormatResult/index.html | 4 ++-- hooks/en/useFull/index.html | 4 ++-- hooks/en/useHover/index.html | 4 ++-- hooks/en/useImmer/index.html | 4 ++-- hooks/en/useInViewport/index.html | 4 ++-- hooks/en/useInfiniteScroll/index.html | 4 ++-- hooks/en/useInterval/index.html | 4 ++-- hooks/en/useKeyPress/index.html | 4 ++-- hooks/en/useLocalStorageState/index.html | 4 ++-- hooks/en/useLockFn/index.html | 4 ++-- hooks/en/useLongPress/index.html | 4 ++-- hooks/en/useMap/index.html | 4 ++-- hooks/en/useMedia/index.html | 4 ++-- hooks/en/useMouse/index.html | 4 ++-- hooks/en/useMutationObserver/index.html | 4 ++-- hooks/en/useNetwork/index.html | 4 ++-- hooks/en/usePreview/index.html | 4 ++-- hooks/en/usePrevious/index.html | 4 ++-- hooks/en/useRequest/basic/index.html | 4 ++-- hooks/en/useRequest/cache/index.html | 4 ++-- hooks/en/useRequest/debounce/index.html | 4 ++-- hooks/en/useRequest/devtools/index.html | 4 ++-- hooks/en/useRequest/fetchs/index.html | 4 ++-- hooks/en/useRequest/formatResult/index.html | 4 ++-- hooks/en/useRequest/global/index.html | 4 ++-- hooks/en/useRequest/guide/index.html | 4 ++-- hooks/en/useRequest/index.html | 4 ++-- hooks/en/useRequest/loadingDelay/index.html | 4 ++-- hooks/en/useRequest/middleware/index.html | 4 ++-- hooks/en/useRequest/plugin/index.html | 4 ++-- .../en/useRequest/plugins/broadcastChannel/index.html | 4 ++-- hooks/en/useRequest/plugins/fetchsing/index.html | 4 ++-- hooks/en/useRequest/polling/index.html | 4 ++-- hooks/en/useRequest/ready/index.html | 4 ++-- hooks/en/useRequest/refreshDeps/index.html | 4 ++-- hooks/en/useRequest/refreshOnWindowFocus/index.html | 4 ++-- hooks/en/useRequest/retry/index.html | 4 ++-- hooks/en/useRequest/scroll/index.html | 4 ++-- hooks/en/useRequest/throttle/index.html | 4 ++-- hooks/en/useResizeObserver/index.html | 4 ++-- hooks/en/useScroll/index.html | 4 ++-- hooks/en/useSessionStorageState/index.html | 4 ++-- hooks/en/useSet/index.html | 4 ++-- hooks/en/useSetState/index.html | 8 ++++---- hooks/en/useSize/index.html | 4 ++-- hooks/en/useThrottle/index.html | 4 ++-- hooks/en/useThrottleFn/index.html | 4 ++-- hooks/en/useTimeout/index.html | 4 ++-- hooks/en/useTitle/index.html | 4 ++-- hooks/en/useToggle/index.html | 4 ++-- hooks/en/useTrackedEffect/index.html | 4 ++-- hooks/en/useUpdate/index.html | 4 ++-- hooks/en/useUrlState/index.html | 4 ++-- hooks/en/useVirtualList/index.html | 4 ++-- hooks/en/useWebSocket/index.html | 4 ++-- hooks/en/useWhyDidYouUpdate/index.html | 4 ++-- hooks/en/useWinResize/index.html | 4 ++-- hooks/en/useWorker/index.html | 4 ++-- hooks/guide/index.html | 4 ++-- hooks/hashmap.json | 2 +- hooks/index.html | 10 +++++----- hooks/migrate/index.html | 4 ++-- hooks/onlineTeaching/index.html | 4 ++-- hooks/useAsyncOrder/index.html | 4 ++-- hooks/useBoolean/index.html | 4 ++-- hooks/useCookieState/index.html | 4 ++-- hooks/useCounter/index.html | 4 ++-- hooks/useDarkMode/index.html | 4 ++-- hooks/useDebounce/index.html | 4 ++-- hooks/useDebounceFn/index.html | 4 ++-- hooks/useDrop/index.html | 4 ++-- hooks/useElementBounding/index.html | 4 ++-- hooks/useEventEmitter/index.html | 4 ++-- hooks/useEventListener/index.html | 4 ++-- hooks/useExternal/index.html | 4 ++-- hooks/useFavicon/index.html | 4 ++-- hooks/useFetchs/index.html | 4 ++-- hooks/useFocusWithin/index.html | 4 ++-- hooks/useFormatResult/index.html | 4 ++-- hooks/useFull/index.html | 4 ++-- hooks/useHover/index.html | 4 ++-- hooks/useImmer/index.html | 4 ++-- hooks/useInViewport/index.html | 4 ++-- hooks/useInfiniteScroll/index.html | 4 ++-- hooks/useInterval/index.html | 4 ++-- hooks/useKeyPress/index.html | 4 ++-- hooks/useLocalStorageState/index.html | 4 ++-- hooks/useLockFn/index.html | 4 ++-- hooks/useLongPress/index.html | 4 ++-- hooks/useMap/index.html | 4 ++-- hooks/useMedia/index.html | 4 ++-- hooks/useMouse/index.html | 4 ++-- hooks/useMutationObserver/index.html | 4 ++-- hooks/useNetwork/index.html | 4 ++-- hooks/usePreview/index.html | 4 ++-- hooks/usePrevious/index.html | 4 ++-- hooks/useRequest/basic/index.html | 4 ++-- hooks/useRequest/cache/index.html | 4 ++-- hooks/useRequest/debounce/index.html | 4 ++-- hooks/useRequest/devtools/index.html | 4 ++-- hooks/useRequest/fetchs/index.html | 4 ++-- hooks/useRequest/formatResult/index.html | 4 ++-- hooks/useRequest/global/index.html | 4 ++-- hooks/useRequest/guide/index.html | 4 ++-- hooks/useRequest/index.html | 4 ++-- hooks/useRequest/loadingDelay/index.html | 4 ++-- hooks/useRequest/middleware/index.html | 4 ++-- hooks/useRequest/plugin/index.html | 4 ++-- hooks/useRequest/plugins/broadcastChannel/index.html | 4 ++-- hooks/useRequest/plugins/fetchsing/index.html | 4 ++-- hooks/useRequest/polling/index.html | 4 ++-- hooks/useRequest/ready/index.html | 4 ++-- hooks/useRequest/refreshDeps/index.html | 4 ++-- hooks/useRequest/refreshOnWindowFocus/index.html | 4 ++-- hooks/useRequest/retry/index.html | 4 ++-- hooks/useRequest/scroll/index.html | 4 ++-- hooks/useRequest/throttle/index.html | 4 ++-- hooks/useResizeObserver/index.html | 4 ++-- hooks/useScroll/index.html | 4 ++-- hooks/useSessionStorageState/index.html | 4 ++-- hooks/useSet/index.html | 4 ++-- hooks/useSetState/index.html | 8 ++++---- hooks/useSize/index.html | 4 ++-- hooks/useThrottle/index.html | 4 ++-- hooks/useThrottleFn/index.html | 4 ++-- hooks/useTimeout/index.html | 4 ++-- hooks/useTitle/index.html | 4 ++-- hooks/useToggle/index.html | 4 ++-- hooks/useTrackedEffect/index.html | 4 ++-- hooks/useUpdate/index.html | 4 ++-- hooks/useUrlState/index.html | 4 ++-- hooks/useVirtualList/index.html | 4 ++-- hooks/useWebSocket/index.html | 4 ++-- hooks/useWhyDidYouUpdate/index.html | 4 ++-- hooks/useWinResize/index.html | 4 ++-- hooks/useWorker/index.html | 4 ++-- 167 files changed, 331 insertions(+), 331 deletions(-) rename hooks/assets/chunks/{Wave.2a7b5754.js => Wave.55507600.js} (99%) rename hooks/assets/chunks/{demo.fc72dc8f.js => demo.ef73852f.js} (100%) rename hooks/assets/{en_index.md.73c7f509.js => en_index.md.16c82b5d.js} (97%) rename hooks/assets/{en_index.md.73c7f509.lean.js => en_index.md.16c82b5d.lean.js} (97%) rename hooks/assets/{en_useSetState_index.md.7069af08.js => en_useSetState_index.md.f049ade8.js} (99%) rename hooks/assets/{en_useSetState_index.md.7069af08.lean.js => en_useSetState_index.md.f049ade8.lean.js} (99%) rename hooks/assets/{index.md.08000111.js => index.md.d89509a8.js} (98%) rename hooks/assets/{index.md.08000111.lean.js => index.md.d89509a8.lean.js} (98%) rename hooks/assets/{style.3a6a2fc5.css => style.df3f2973.css} (99%) rename hooks/assets/{useSetState_index.md.0693216a.js => useSetState_index.md.e8e67cdc.js} (99%) rename hooks/assets/{useSetState_index.md.0693216a.lean.js => useSetState_index.md.e8e67cdc.lean.js} (99%) diff --git a/hooks/404.html b/hooks/404.html index 1ac845791..c4531c9a7 100644 --- a/hooks/404.html +++ b/hooks/404.html @@ -5,7 +5,7 @@ 404 | VueHook Plus - + @@ -14,7 +14,7 @@
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- + diff --git a/hooks/assets/chunks/Wave.2a7b5754.js b/hooks/assets/chunks/Wave.55507600.js similarity index 99% rename from hooks/assets/chunks/Wave.2a7b5754.js rename to hooks/assets/chunks/Wave.55507600.js index f4dae4c6a..9c169e0fa 100644 --- a/hooks/assets/chunks/Wave.2a7b5754.js +++ b/hooks/assets/chunks/Wave.55507600.js @@ -1,6 +1,6 @@ import{e as Qi,r as pi,h as co,i as uo,j as Ma,o as je,c as Ke,d as Be,k as ho,F as si,t as mi,l as Sn,u as Wi,m as Or,_ as Xi,n as fo,p as ya,g as Sa}from"../app.5e4b2b03.js";const ba=r=>Array.isArray(r),wa=r=>ba(r)?r:[r];let po=function(r){let e=function(m){return wa(m).forEach(_=>{var p;return d.set(Symbol((p=_.char)==null?void 0:p.innerText),i({..._}))}),this},t=()=>c().filter(m=>m.typeable),n=function(m,_){let p=[...d.keys()];d.set(p[m],i(_))},i=m=>(m.shouldPauseCursor=function(){return Boolean(this.typeable||this.cursorable||this.deletable)},m),s=function(){d.forEach(m=>delete m.done)},o=function(){d=new Map,e(r)},a=()=>d,c=()=>Array.from(d.values()),l=m=>d.delete(m),u=(m=!1)=>m?c():c().filter(_=>!_.done),f=(m,_=!1)=>_?d.delete(m):d.get(m).done=!0,d=new Map;return e(r),{add:e,set:n,wipe:o,reset:s,destroy:l,done:f,getItems:u,getQueue:a,getTypeable:t}};const Aa=r=>Array.from(r),Yr=r=>document.createTextNode(r);let Qr=r=>([...r.childNodes].forEach(e=>{if(e.nodeValue){[...e.nodeValue].forEach(t=>{e.parentNode.insertBefore(Yr(t),e)}),e.remove();return}Qr(e)}),r);const Ta=r=>{let e=document.implementation.createHTMLDocument();return e.body.innerHTML=r,Qr(e.body)},Ea="data-typeit-id",mn="ti-cursor",mo="END",go={started:!1,completed:!1,frozen:!1,destroyed:!1},Bn={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map(r=>({opacity:r})),options:{iterations:1/0,easing:"steps(2, start)",fill:"forwards"}}},cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},_o=`[${Ea}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;function Ca(r,e=!1,t=!1){let n=r.querySelector(`.${mn}`),i=document.createTreeWalker(r,NodeFilter.SHOW_ALL,{acceptNode:a=>{var c,l;if(n&&t){if((c=a.classList)!=null&&c.contains(mn))return NodeFilter.FILTER_ACCEPT;if(n.contains(a))return NodeFilter.FILTER_REJECT}return(l=a.classList)!=null&&l.contains(mn)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),s,o=[];for(;s=i.nextNode();)s.originalParent||(s.originalParent=s.parentNode),o.push(s);return e?o.reverse():o}function xo(r){return Ca(Ta(r))}function vo(r,e=!0){return e?xo(r):Aa(r).map(Yr)}const ki=r=>document.createElement(r),La=(r,e="")=>{let t=ki("style");t.id=e,t.appendChild(Yr(r)),document.head.appendChild(t)},ns=r=>(ba(r)||(r=[r/2,r/2]),r),is=(r,e)=>Math.abs(Math.random()*(r+e-(r-e))+(r-e));let rs=r=>r/2;function Mo(r){let{speed:e,deleteSpeed:t,lifeLike:n}=r;return t=t!==null?t:e/3,n?[is(e,rs(e)),is(t,rs(t))]:[e,t]}const yo=r=>(r.forEach(clearTimeout),[]),So=()=>Math.random().toString().substring(2,9),Xr=r=>"value"in r;let bo=r=>Xr(r)?Aa(r.value):Ca(r,!0).filter(e=>!(e.childNodes.length>0));const wo=(r,e)=>{new IntersectionObserver((n,i)=>{n.forEach(s=>{s.isIntersecting&&(e(),i.unobserve(r))})},{threshold:1}).observe(r)};let bn=r=>typeof r=="function"?r():r;const Da=r=>Number.isInteger(r);let qr=(r,e=document,t=!1)=>e[`querySelector${t?"All":""}`](r),Ao=r=>/body/i.test(r==null?void 0:r.tagName),To=(r,e)=>{if(Xr(r)){r.value=`${r.value}${e.textContent}`;return}e.innerHTML="";let t=Ao(e.originalParent)?r:e.originalParent||r;t.insertBefore(e,qr("."+mn,t)||null)},Eo=(r,e,t)=>Math.min(Math.max(e+r,0),t.length);const ti=(r,e)=>Object.assign({},r,e),Co=(r,e)=>{if(!r)return;let t=r.parentNode;(t.childNodes.length>1||t.isSameNode(e)?r:t).remove()},Lo=(r,e,t)=>{let n=e[t-1],i=qr(`.${mn}`,r);r=(n==null?void 0:n.parentNode)||r,r.insertBefore(i,n||null)};function Do(r){return typeof r=="string"?qr(r):r}const Io=r=>/<(.+)>(.*?)<\/(.+)>/.test(r.outerHTML);let Ro=(r,e,t)=>new Promise(n=>{let i=async()=>{await r(),n()};t.push(setTimeout(i,e||0))}),Po={"font-family":"","font-weight":"","font-size":"","font-style":"","line-height":"",color:"",transform:"translateX(-.125em)"},No=(r,e)=>{let n=`${`[${Ea}='${r}']`} .${mn}`,i=getComputedStyle(e),s=Object.entries(Po).reduce((o,[a,c])=>`${o} ${a}: var(--ti-cursor-${a}, ${c||i[a]});`,"");La(`${n} { display: inline-block; width: 0; ${s} }`,r)};const gi=(r,e)=>new Array(e).fill(r),ss=({queueItems:r,selector:e,cursorPosition:t,to:n})=>{if(Da(e))return e*-1;let i=new RegExp(mo,"i").test(n),s=e?[...r].reverse().findIndex(({char:a})=>{let c=a.parentElement,l=c.matches(e);return i&&l?!0:l&&c.firstChild.isSameNode(a)}):-1;s<0&&(s=i?0:r.length-1);let o=i?0:1;return s-t+o};let ji=r=>new Promise(e=>{requestAnimationFrame(async()=>{e(await r())})}),Ia=r=>r==null?void 0:r.getAnimations().find(e=>e.id===r.dataset.tiAnimationId),Ra=({cursor:r,frames:e,options:t})=>{let n=r.animate(e,t);return n.pause(),n.id=r.dataset.tiAnimationId,ji(()=>{ji(()=>{n.play()})}),n},zo=({cursor:r,options:e,cursorOptions:t})=>{if(!r||!t)return;let n=Ia(r),i;n&&(e.delay=n.effect.getComputedTiming().delay,i=n.currentTime,n.cancel());let s=Ra({cursor:r,frames:t.animation.frames,options:e});return i&&(s.currentTime=i),s},as=r=>{var e;return(e=r.func)==null?void 0:e.call(null)},Oo=async({index:r,queueItems:e,wait:t,cursor:n,cursorOptions:i})=>{let s=e[r][1],o=[],a=r,c=s,l=()=>c&&!c.delay,u=s.shouldPauseCursor()&&i.autoPause;for(;l();)o.push(c),l()&&a++,c=e[a]?e[a][1]:null;if(o.length)return await ji(async()=>{for(let m of o)await as(m)}),a-1;let f=Ia(n),d;return f&&(d={...f.effect.getComputedTiming(),delay:u?i.autoPauseDelay:0}),await t(async()=>{f&&u&&f.cancel(),await ji(()=>{as(s)})},s.delay),await zo({cursor:n,options:d,cursorOptions:i}),r},Fo=r=>{var e,t,n;if(typeof r=="object"){let i={},{frames:s,options:o}=Bn.cursor.animation;return i.animation=r.animation||{},i.animation.frames=((e=r.animation)==null?void 0:e.frames)||s,i.animation.options=ti(o,((t=r.animation)==null?void 0:t.options)||{}),i.autoPause=(n=r.autoPause)!=null?n:Bn.cursor.autoPause,i.autoPauseDelay=r.autoPauseDelay||Bn.cursor.autoPauseDelay,i}return r===!0?Bn.cursor:r};const Uo=function(r,e={}){var Y;let t=async(C,z,O=!1)=>{te.frozen&&await new Promise(F=>{this.unfreeze=()=>{te.frozen=!1,F()}}),O||await N.beforeStep(this),await Ro(C,z,T),O||await N.afterStep(this)},n=(C,z)=>Oo({index:C,queueItems:z,wait:t,cursor:Z,cursorOptions:N.cursor}),i=C=>Co(C,g),s=()=>Xr(g),o=(C=0)=>Mo(N)[C],a=()=>bo(g),c=(C={})=>{let z=C.delay;z&&k.add({delay:z})},l=(C,z)=>(k.add(C),c(z),this),u=()=>X!=null?X:I,f=(C={})=>[{func:()=>w(C)},{func:()=>w(N)}],d=C=>{let z=N.nextStringDelay;k.add([{delay:z[0]},...C,{delay:z[1]}])},m=()=>{if(s())return;let C=ki("span");return C.className=mn,q?(C.innerHTML=Ta(N.cursorChar).innerHTML,C):(C.style.visibility="hidden",C)},_=async()=>{if(!s()&&Z&&g.appendChild(Z),q){No(P,g),Z.dataset.tiAnimationId=P;let{animation:C}=N.cursor,{frames:z,options:O}=C;Ra({frames:z,cursor:Z,options:{duration:N.cursorSpeed,...O}})}},p=()=>{let C=N.strings.filter(z=>!!z);C.forEach((z,O)=>{if(this.type(z),O+1===C.length)return;let F=N.breakLines?[{func:()=>y(ki("BR")),typeable:!0}]:gi({func:U,delay:o(1)},k.getTypeable().length);d(F)})},h=async C=>{let z=u();z&&await b({value:z});let O=a().map(F=>[Symbol(),{func:U,delay:o(1),deletable:!0,shouldPauseCursor:()=>!0}]);for(let F=0;F{let z=g.innerHTML;return z?(g.innerHTML="",N.startDelete?(g.innerHTML=z,Qr(g),d(gi({func:U,delay:o(1),deletable:!0},a().length)),C):z.replace(//g,"").trim().split(//).concat(C)):C},A=async(C=!0)=>{te.started=!0;let z=O=>{k.done(O,!C)};try{let O=[...k.getQueue()];for(let $=0;$we+le).forEach(we=>{let[le]=O[we];z(le)}),$=G}z(J)}}if(!C)return this;if(te.completed=!0,await N.afterComplete(this),!N.loop)throw"";let F=N.loopDelay;t(async()=>{await h(F[0]),A()},F[1])}catch{}return this},b=async C=>{I=Eo(C,I,a()),Lo(g,a(),I)},y=C=>To(g,C),w=async C=>N=ti(N,C),L=async()=>{if(s()){g.value="";return}a().forEach(i)},U=()=>{let C=a();!C.length||(s()?g.value=g.value.slice(0,-1):i(C[I]))};this.break=function(C){return l({func:()=>y(ki("BR")),typeable:!0},C)},this.delete=function(C=null,z={}){C=bn(C);let O=f(z),F=C,{instant:$,to:J}=z,ne=k.getTypeable(),G=(()=>F===null?ne.length:Da(F)?F:ss({queueItems:ne,selector:F,cursorPosition:u(),to:J}))();return l([O[0],...gi({func:U,delay:$?0:o(1),deletable:!0},G),O[1]],z)},this.empty=function(C={}){return l({func:L},C)},this.exec=function(C,z={}){let O=f(z);return l([O[0],{func:()=>C(this)},O[1]],z)},this.move=function(C,z={}){C=bn(C);let O=f(z),{instant:F,to:$}=z,J=ss({queueItems:k.getTypeable(),selector:C===null?"":C,to:$,cursorPosition:u()}),ne=J<0?-1:1;return X=u()+J,l([O[0],...gi({func:()=>b(ne),delay:F?0:o(),cursorable:!0},Math.abs(J)),O[1]],z)},this.options=function(C,z={}){return C=bn(C),w(C),l({},z)},this.pause=function(C,z={}){return l({delay:bn(C)},z)},this.type=function(C,z={}){C=bn(C);let{instant:O}=z,F=f(z),J=vo(C,N.html).map(G=>({func:()=>y(G),char:G,delay:O||Io(G)?0:o(),typeable:G.nodeType===Node.TEXT_NODE})),ne=[F[0],{func:async()=>await N.beforeString(C,this)},...J,{func:async()=>await N.afterString(C,this)},F[1]];return l(ne,z)},this.is=function(C){return te[C]},this.destroy=function(C=!0){T=yo(T),bn(C)&&Z&&i(Z),te.destroyed=!0},this.freeze=function(){te.frozen=!0},this.unfreeze=()=>{},this.reset=function(C){!this.is("destroyed")&&this.destroy(),C?(k.wipe(),C(this)):k.reset(),I=0;for(let z in te)te[z]=!1;return g[s()?"value":"innerHTML"]="",this},this.go=function(){return te.started?this:(_(),N.waitUntilVisible?(wo(g,A.bind(this)),this):(A(),this))},this.flush=function(C=()=>{}){return _(),A(!1).then(C),this},this.getQueue=()=>k,this.getOptions=()=>N,this.updateOptions=C=>w(C),this.getElement=()=>g;let g=Do(r),T=[],I=0,X=null,te=ti({},go);e.cursor=Fo((Y=e.cursor)!=null?Y:Bn.cursor);let N=ti(Bn,e);N=ti(N,{html:!s()&&N.html,nextStringDelay:ns(N.nextStringDelay),loopDelay:ns(N.loopDelay)});let P=So(),k=po([{delay:N.startDelay}]);g.dataset.typeitId=P,La(_o);let q=!!N.cursor&&!s(),Z=m();N.strings=x(wa(N.strings)),N.strings.length&&p()};const Bo=Be("div",null,[Be("h2",{class:"name"}," Grace ")],-1),Go={class:"terminal"},Cp=Qi({__name:"DemoEditor",setup(r){const e=pi(null),t=pi(!1),n=pi(!0),[i]=co(e),s=pi();return uo([i,t],o=>{(o==null?void 0:o[0])&&(o==null?void 0:o[1])&&n.value===!0&&(n.value=!1,s.value&&new Uo(s.value,{speed:50,startDelay:900}).type('

Welcome use VueHooks Plus!



',{delay:100}).type('<script setup lang="ts" >


').type(' import { useRequest } from "vue-hooks-plus"

',{delay:100}).type(` const { data } = useRequest(()=>getData(),{ ...options - })`).type('


<script />').type('

<template>

 <div>
   data\uFF1A{{ undefined }}
 <div />
').type('
<template />').move(-27).delete(11,{delay:400}).type(' fetch API data update! ',{delay:400}).go())}),Ma(()=>{t.value=!0}),(o,a)=>(je(),Ke(si,null,[Bo,Be("div",{id:"demo-editor",ref_key:"domRef",ref:e},[Be("div",Go,[ho(o.$slots,"default"),Be("div",null,[Be("pre",{ref_key:"block",ref:s,class:"language-vue extra-class"},null,512)])])],512)],64))}});var ko=["NelsonYong","hongaah","Noobbbbbbb"];const ri={},Ho=r=>`https://github.com/${encodeURIComponent(r)}.png`;ko.reduce((r,e)=>(ri[e]=Ho(e),r.push({name:e,avatar:ri[e]}),r),[]);const Vo=[{avatar:ri.NelsonYong,name:"Yong Git",github:"NelsonYong",twitter:"Yong_Git",sponsors:!0,description:"VueHooks Plus's Author",packages:["vue-hooks-plus"]},{avatar:ri.hongaah,name:"Hongaah",github:"hongaah",description:"Swiftcode's Author",functions:["useSetState","useWebSocket"]},{avatar:"https://avatars.githubusercontent.com/u/51957438?v=4",name:"XiaoDaiGua-Ray",github:"XiaoDaiGua-Ray",description:"Tring be better\uFF5E",functions:["useElementBounding","useMutationObserver"]},{avatar:ri.Noobbbbbbb,name:"Noobbbbbbb",github:"Noobbbbbbb",description:"",functions:["useFullscreen"]}],Wo="data:image/png;base64,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",jo="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjY5Mjg1NjMxNzM5IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE5OTIiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTU1OC40NTIzNjQgOTUuNDE4MTgybDcuOTEyNzI3IDQuMTQyNTQ1TDg0My40MDM2MzYgMjU3Ljg2MTgxOGExMDguOTE2MzY0IDEwOC45MTYzNjQgMCAwIDEgNTQuMjI1NDU1IDg1Ljk2OTQ1NWwwLjMyNTgxOCA4LjI4NTA5MXYzMTYuNzQxODE4YzAgMzYuMDcyNzI3LTE3LjkyIDY5LjU4NTQ1NS00Ny40Mjk4MTggODkuNzg2MTgybC02Ljk4MTgxOCA0LjM3NTI3Mi0wLjEzOTYzNyAwLjA5MzA5MS0yNzcuMDM4NTQ1IDE1OC4zMDEwOTFjLTEyLjE5NDkwOSA2Ljk4MTgxOC0yNS4zNjcyNzMgMTEuNDk2NzI3LTM4LjgxODkwOSAxMy40NTE2MzdhMjkuNzg5MDkxIDI5Ljc4OTA5MSAwIDAgMS0zMS4xODU0NTUtMC4wNDY1NDYgMTA3LjUyIDEwNy41MiAwIDAgMS0zMS4zMjUwOTEtOS40OTUyNzNsLTcuNDQ3MjcyLTMuOTA5ODE4LTI3Ny4wMzg1NDYtMTU4LjMwMTA5MWExMDguOTE2MzY0IDEwOC45MTYzNjQgMCAwIDEtNTQuMjI1NDU0LTg2LjAxNmwtMC4zMjU4MTktOC4yMzg1NDVWMzUyLjExNjM2NGMwLTM2LjA3MjcyNyAxNy45Mi02OS42MzIgNDcuNDI5ODE5LTg5Ljc4NjE4Mmw2Ljk4MTgxOC00LjM3NTI3MyAwLjEzOTYzNi0wLjA5MzA5MUw0NTcuNTg4MzY0IDk5LjYwNzI3M2ExMDguODY5ODE4IDEwOC44Njk4MTggMCAwIDEgMTAwLjg2NC00LjE0MjU0NnpNMTg1LjcxNjM2NCAzNDYuMjk4MTgybC0wLjMyNTgxOSA1LjgxODE4MnYzMTYuNjk1MjcyYzAgMTUuNjg1ODE4IDcuNDQ3MjczIDMwLjI1NDU0NSAxOS44MjgzNjQgMzkuNTYzNjM3bDQuODQwNzI3IDMuMjExNjM2IDI3Mi4xOTc4MTkgMTU1LjUwODM2NHYtMzUwLjcyTDE4NS45MDI1NDUgMzQ0Ljk5NDkwOWE0OS4zMzgxODIgNDkuMzM4MTgyIDAgMCAwLTAuMTg2MTgxIDEuMzQ5ODE4eiBtNjUyLjM4MTA5MS0xLjAyNEw1NDEuNjQ5NDU1IDUxNi42NTQ1NDV2MzUwLjQ4NzI3M2wyNzIuMjQ0MzYzLTE1NS41NTQ5MDljMTMuNTQ0NzI3LTcuODY2MTgyIDIyLjQ4MTQ1NS0yMS41OTcwOTEgMjQuMzQzMjczLTM2Ljk1NzA5MWwwLjMyNTgxOC01LjgxODE4MlYzNTIuMTYyOTA5YzAtMi4zMjcyNzMtMC4xMzk2MzYtNC42NTQ1NDUtMC40NjU0NTQtNi44ODg3Mjd6IG0tMzQ0Ljk0ODM2NC0xOTcuMTY2NTQ2bC01LjkxMTI3MyAyLjg4NTgxOS0wLjA5MzA5MSAwLjA5MzA5LTI2MC41NjE0NTQgMTQ4LjgwNTgxOSAyODUuNjQ5NDU0IDE2NS4yMzYzNjMgMjg1LjMyMzYzNy0xNjUuMDUwMTgyLTI2MC43MDEwOTEtMTQ4Ljk5Mi0wLjEzOTYzNy0wLjA5MzA5YTQ5LjQ3NzgxOCA0OS40Nzc4MTggMCAwIDAtNDMuNTY2NTQ1LTIuODg1ODE5eiIgZmlsbD0iI2RiZGJkYiIgcC1pZD0iMTk5MyI+PC9wYXRoPjwvc3ZnPg==",Yo="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjY5Mjg1ODU1ODcxIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ5ODMiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PHBhdGggZD0iTTM2MC40NDggNDU2LjcwNGgxNjEuNzkyYzEyLjI4OCAwIDIwLjQ4IDguMTkyIDIwLjQ4IDIwLjQ4cy04LjE5MiAyMC40OC0yMC40OCAyMC40OGgtMTY3LjkzNmwtNzcuODI0IDQzOC4yNzJjLTIuMDQ4IDEwLjI0LTEyLjI4OCAxOC40MzItMjQuNTc2IDE2LjM4NC0xMC4yNC0yLjA0OC0xOC40MzItMTIuMjg4LTE2LjM4NC0yNC41NzZsNzUuNzc2LTQzMC4wOGgtMTE2LjczNmMtMTIuMjg4IDAtMjAuNDgtOC4xOTItMjAuNDgtMjAuNDhzOC4xOTItMjAuNDggMjAuNDgtMjAuNDhoMTI0LjkyOGwzNC44MTYtMTk2LjYwOGM0LjA5Ni0yMi41MjggMTQuMzM2LTUzLjI0OCAzNC44MTYtODMuOTY4IDE4LjQzMi0yNi42MjQgNDMuMDA4LTQ5LjE1MiA3MS42OC02My40ODggMzYuODY0LTE4LjQzMiA3Ny44MjQtMjYuNjI0IDExOC43ODQtMjguNjcyIDEyLjI4OCAwIDIwLjQ4IDguMTkyIDIwLjQ4IDIwLjQ4cy04LjE5MiAyMC40OC0yMC40OCAyMC40OGMtMzQuODE2IDAtNjcuNTg0IDguMTkyLTEwMC4zNTIgMjIuNTI4LTIyLjUyOCAxMi4yODgtNDMuMDA4IDI4LjY3Mi01Ny4zNDQgNTEuMi0xMC4yNCAxNC4zMzYtMTguNDMyIDMwLjcyLTIyLjUyOCA0Ny4xMDQtNC4wOTYgMTAuMjQtNC4wOTYgMTYuMzg0LTYuMTQ0IDIwLjQ4bC0zMi43NjggMTkwLjQ2NHogbTM0NC4wNjQgMjUxLjkwNGwxMTYuNzM2LTEzNy4yMTZjOC4xOTItOC4xOTIgMjAuNDgtMTAuMjQgMjguNjcyLTIuMDQ4czEwLjI0IDIwLjQ4IDIuMDQ4IDI4LjY3MmwtMTIwLjgzMiAxNDMuMzYgMTIwLjgzMiAxNDMuMzZjOC4xOTIgOC4xOTIgNi4xNDQgMjIuNTI4LTIuMDQ4IDI4LjY3Mi04LjE5MiA4LjE5Mi0yMi41MjggNi4xNDQtMjguNjcyLTIuMDQ4bC0xMTYuNzM2LTEzNy4yMTYtMTE2LjczNiAxMzcuMjE2Yy04LjE5MiA4LjE5Mi0yMC40OCAxMC4yNC0yOC42NzIgMi4wNDgtOC4xOTItOC4xOTItMTAuMjQtMjAuNDgtMi4wNDgtMjguNjcybDEyMC44MzItMTQzLjM2LTEyMC44MzItMTQzLjM2Yy04LjE5Mi04LjE5Mi02LjE0NC0yMi41MjggMi4wNDgtMjguNjcyIDguMTkyLTguMTkyIDIyLjUyOC02LjE0NCAyOC42NzIgMi4wNDhsMTE2LjczNiAxMzcuMjE2eiIgcC1pZD0iNDk4NCIgZmlsbD0iI2RiZGJkYiI+PC9wYXRoPjwvc3ZnPg==";const Qo={class:"container"},Xo=["src","alt"],qo={class:"name"},Zo=["href"],Jo={key:1},Ko=["innerHTML"],$o={flex:"~ inline gap-2",py2:"","text-2xl":""},el=["href","aria-label"],tl=["href","aria-label"],nl=["href","title","aria-label"],il={key:0,"bg-gray:5":"",mb2:"",p2:"",rounded:"",grid:"~ cols-[20px_1fr] gap-y-2","items-start":"",w:"5/6",mxa:""},rl={key:0,class:"code"},sl=["src"],al={class:"code-container"},ol=["href"],ll={key:1,class:"code"},cl=["src"],ul={class:"code-container"},hl=Qi({__name:"TeamMember",props:{data:{}},setup(r){return(e,t)=>(je(),Ke("div",Qo,[Be("img",{class:"avatar",loading:"lazy",width:"150",height:"150","m-auto":"","rounded-full":"","min-w-25":"","min-h-25":"","h-25":"","w-25":"",src:e.data.avatar,alt:`${e.data.name}'s avatar`},null,8,Xo),Be("div",qo,[e.data.github?(je(),Ke("a",{key:0,href:`https://github.com/${e.data.github}`,target:"_blank"},mi(e.data.name),9,Zo)):(je(),Ke("div",Jo,mi(e.data.name),1))]),Be("div",{class:"description",innerHTML:e.data.description},null,8,Ko),Be("div",$o,[e.data.github?(je(),Ke("a",{key:0,class:"i-carbon-logo-github inline-block text-current op30 hover:op100 mya transition duration-200",href:`https://github.com/${e.data.github}`,target:"_blank",rel:"noopener noreferrer","aria-label":`${e.data.name} on GitHub`},null,8,el)):Sn("",!0),e.data.twitter?(je(),Ke("a",{key:1,class:"i-carbon-logo-twitter inline-block text-1.3em mya text-current op30 hover:op100 transition duration-200",href:`https://twitter.com/${e.data.twitter}`,target:"_blank",rel:"noopener noreferrer","aria-label":`${e.data.name} on Twitter`},null,8,tl)):Sn("",!0),e.data.sponsors?(je(),Ke("a",{key:2,class:"i-carbon-favorite-filled inline-block mya text-current op30 hover:op100 transition duration-200",href:`https://github.com/sponsors/${e.data.github}`,target:"_blank",rel:"noopener noreferrer",title:`Sponsor ${e.data.name}`,"aria-label":`Sponsor ${e.data.name}`},null,8,nl)):Sn("",!0)]),e.data.functions||e.data.packages?(je(),Ke("div",il,[e.data.functions?(je(),Ke("div",rl,[Be("img",{class:"icon",src:Wi(Yo),alt:""},null,8,sl),Be("div",al,[(je(!0),Ke(si,null,Or(e.data.functions,n=>(je(),Ke("a",{key:n,href:`/${n}/`,target:"_blank"},[Be("code",null,mi(n),1)],8,ol))),128))])])):Sn("",!0),e.data.packages?(je(),Ke("div",ll,[Be("img",{class:"icon",src:Wi(jo),alt:""},null,8,cl),Be("div",ul,[(je(!0),Ke(si,null,Or(e.data.packages,n=>(je(),Ke("a",{key:n,href:""},[Be("code",null,mi(n),1)]))),128))])])):Sn("",!0)])):Sn("",!0)]))}});var dl=Xi(hl,[["__scopeId","data-v-d4923066"]]);const fl=r=>(ya("data-v-345e01e7"),r=r(),Sa(),r),pl=fl(()=>Be("div",null,[Be("h2",{class:"name"}," Meet The Team ")],-1)),ml={class:"main"},gl={class:"grid"},_l=Qi({__name:"HomeTeam",setup(r){return(e,t)=>(je(),Ke(si,null,[pl,Be("div",ml,[Be("div",gl,[(je(!0),Ke(si,null,Or(Wi(Vo),n=>(je(),fo(dl,{key:n.github,data:n},null,8,["data"]))),128))])])],64))}});var Lp=Xi(_l,[["__scopeId","data-v-345e01e7"]]);const xl=r=>(ya("data-v-23f2a419"),r=r(),Sa(),r),vl={class:"container"},Ml=xl(()=>Be("div",{class:"img"},null,-1)),yl=["src"],Sl=Qi({__name:"Icon",setup(r){return(e,t)=>(je(),Ke("div",vl,[Ml,Be("img",{src:Wi(Wo),alt:"vue-hooks-plus"},null,8,yl)]))}});var Dp=Xi(Sl,[["__scopeId","data-v-23f2a419"]]);/** + })`).type('


<script />').type('

<template>

 <div>
   data\uFF1A{{ undefined }}
 <div />
').type('
<template />').move(-27).delete(11,{delay:400}).type(' fetch API data update! ',{delay:400}).go())}),Ma(()=>{t.value=!0}),(o,a)=>(je(),Ke(si,null,[Bo,Be("div",{id:"demo-editor",ref_key:"domRef",ref:e},[Be("div",Go,[ho(o.$slots,"default"),Be("div",null,[Be("pre",{ref_key:"block",ref:s,class:"language-vue extra-class"},null,512)])])],512)],64))}});var ko=["NelsonYong","hongaah","Noobbbbbbb"];const ri={},Ho=r=>`https://github.com/${encodeURIComponent(r)}.png`;ko.reduce((r,e)=>(ri[e]=Ho(e),r.push({name:e,avatar:ri[e]}),r),[]);const Vo=[{avatar:ri.NelsonYong,name:"Yong Git",github:"NelsonYong",twitter:"Yong_Git",sponsors:!0,description:"VueHooks Plus's Author",packages:["vue-hooks-plus"]},{avatar:ri.hongaah,name:"Hongaah",github:"hongaah",description:"Swiftcode's Author",functions:["useSetState","useWebSocket"]},{avatar:"https://avatars.githubusercontent.com/u/51957438?v=4",name:"XiaoDaiGua-Ray",github:"XiaoDaiGua-Ray",description:"Tring be better\uFF5E",functions:["useElementBounding","useMutationObserver"]},{avatar:ri.Noobbbbbbb,name:"Noobbbbbbb",github:"Noobbbbbbb",description:"",functions:["useFullscreen"]}],Wo="data:image/png;base64,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",jo="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjY5Mjg1NjMxNzM5IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE5OTIiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTU1OC40NTIzNjQgOTUuNDE4MTgybDcuOTEyNzI3IDQuMTQyNTQ1TDg0My40MDM2MzYgMjU3Ljg2MTgxOGExMDguOTE2MzY0IDEwOC45MTYzNjQgMCAwIDEgNTQuMjI1NDU1IDg1Ljk2OTQ1NWwwLjMyNTgxOCA4LjI4NTA5MXYzMTYuNzQxODE4YzAgMzYuMDcyNzI3LTE3LjkyIDY5LjU4NTQ1NS00Ny40Mjk4MTggODkuNzg2MTgybC02Ljk4MTgxOCA0LjM3NTI3Mi0wLjEzOTYzNyAwLjA5MzA5MS0yNzcuMDM4NTQ1IDE1OC4zMDEwOTFjLTEyLjE5NDkwOSA2Ljk4MTgxOC0yNS4zNjcyNzMgMTEuNDk2NzI3LTM4LjgxODkwOSAxMy40NTE2MzdhMjkuNzg5MDkxIDI5Ljc4OTA5MSAwIDAgMS0zMS4xODU0NTUtMC4wNDY1NDYgMTA3LjUyIDEwNy41MiAwIDAgMS0zMS4zMjUwOTEtOS40OTUyNzNsLTcuNDQ3MjcyLTMuOTA5ODE4LTI3Ny4wMzg1NDYtMTU4LjMwMTA5MWExMDguOTE2MzY0IDEwOC45MTYzNjQgMCAwIDEtNTQuMjI1NDU0LTg2LjAxNmwtMC4zMjU4MTktOC4yMzg1NDVWMzUyLjExNjM2NGMwLTM2LjA3MjcyNyAxNy45Mi02OS42MzIgNDcuNDI5ODE5LTg5Ljc4NjE4Mmw2Ljk4MTgxOC00LjM3NTI3MyAwLjEzOTYzNi0wLjA5MzA5MUw0NTcuNTg4MzY0IDk5LjYwNzI3M2ExMDguODY5ODE4IDEwOC44Njk4MTggMCAwIDEgMTAwLjg2NC00LjE0MjU0NnpNMTg1LjcxNjM2NCAzNDYuMjk4MTgybC0wLjMyNTgxOSA1LjgxODE4MnYzMTYuNjk1MjcyYzAgMTUuNjg1ODE4IDcuNDQ3MjczIDMwLjI1NDU0NSAxOS44MjgzNjQgMzkuNTYzNjM3bDQuODQwNzI3IDMuMjExNjM2IDI3Mi4xOTc4MTkgMTU1LjUwODM2NHYtMzUwLjcyTDE4NS45MDI1NDUgMzQ0Ljk5NDkwOWE0OS4zMzgxODIgNDkuMzM4MTgyIDAgMCAwLTAuMTg2MTgxIDEuMzQ5ODE4eiBtNjUyLjM4MTA5MS0xLjAyNEw1NDEuNjQ5NDU1IDUxNi42NTQ1NDV2MzUwLjQ4NzI3M2wyNzIuMjQ0MzYzLTE1NS41NTQ5MDljMTMuNTQ0NzI3LTcuODY2MTgyIDIyLjQ4MTQ1NS0yMS41OTcwOTEgMjQuMzQzMjczLTM2Ljk1NzA5MWwwLjMyNTgxOC01LjgxODE4MlYzNTIuMTYyOTA5YzAtMi4zMjcyNzMtMC4xMzk2MzYtNC42NTQ1NDUtMC40NjU0NTQtNi44ODg3Mjd6IG0tMzQ0Ljk0ODM2NC0xOTcuMTY2NTQ2bC01LjkxMTI3MyAyLjg4NTgxOS0wLjA5MzA5MSAwLjA5MzA5LTI2MC41NjE0NTQgMTQ4LjgwNTgxOSAyODUuNjQ5NDU0IDE2NS4yMzYzNjMgMjg1LjMyMzYzNy0xNjUuMDUwMTgyLTI2MC43MDEwOTEtMTQ4Ljk5Mi0wLjEzOTYzNy0wLjA5MzA5YTQ5LjQ3NzgxOCA0OS40Nzc4MTggMCAwIDAtNDMuNTY2NTQ1LTIuODg1ODE5eiIgZmlsbD0iI2RiZGJkYiIgcC1pZD0iMTk5MyI+PC9wYXRoPjwvc3ZnPg==",Yo="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjY5Mjg1ODU1ODcxIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ5ODMiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PHBhdGggZD0iTTM2MC40NDggNDU2LjcwNGgxNjEuNzkyYzEyLjI4OCAwIDIwLjQ4IDguMTkyIDIwLjQ4IDIwLjQ4cy04LjE5MiAyMC40OC0yMC40OCAyMC40OGgtMTY3LjkzNmwtNzcuODI0IDQzOC4yNzJjLTIuMDQ4IDEwLjI0LTEyLjI4OCAxOC40MzItMjQuNTc2IDE2LjM4NC0xMC4yNC0yLjA0OC0xOC40MzItMTIuMjg4LTE2LjM4NC0yNC41NzZsNzUuNzc2LTQzMC4wOGgtMTE2LjczNmMtMTIuMjg4IDAtMjAuNDgtOC4xOTItMjAuNDgtMjAuNDhzOC4xOTItMjAuNDggMjAuNDgtMjAuNDhoMTI0LjkyOGwzNC44MTYtMTk2LjYwOGM0LjA5Ni0yMi41MjggMTQuMzM2LTUzLjI0OCAzNC44MTYtODMuOTY4IDE4LjQzMi0yNi42MjQgNDMuMDA4LTQ5LjE1MiA3MS42OC02My40ODggMzYuODY0LTE4LjQzMiA3Ny44MjQtMjYuNjI0IDExOC43ODQtMjguNjcyIDEyLjI4OCAwIDIwLjQ4IDguMTkyIDIwLjQ4IDIwLjQ4cy04LjE5MiAyMC40OC0yMC40OCAyMC40OGMtMzQuODE2IDAtNjcuNTg0IDguMTkyLTEwMC4zNTIgMjIuNTI4LTIyLjUyOCAxMi4yODgtNDMuMDA4IDI4LjY3Mi01Ny4zNDQgNTEuMi0xMC4yNCAxNC4zMzYtMTguNDMyIDMwLjcyLTIyLjUyOCA0Ny4xMDQtNC4wOTYgMTAuMjQtNC4wOTYgMTYuMzg0LTYuMTQ0IDIwLjQ4bC0zMi43NjggMTkwLjQ2NHogbTM0NC4wNjQgMjUxLjkwNGwxMTYuNzM2LTEzNy4yMTZjOC4xOTItOC4xOTIgMjAuNDgtMTAuMjQgMjguNjcyLTIuMDQ4czEwLjI0IDIwLjQ4IDIuMDQ4IDI4LjY3MmwtMTIwLjgzMiAxNDMuMzYgMTIwLjgzMiAxNDMuMzZjOC4xOTIgOC4xOTIgNi4xNDQgMjIuNTI4LTIuMDQ4IDI4LjY3Mi04LjE5MiA4LjE5Mi0yMi41MjggNi4xNDQtMjguNjcyLTIuMDQ4bC0xMTYuNzM2LTEzNy4yMTYtMTE2LjczNiAxMzcuMjE2Yy04LjE5MiA4LjE5Mi0yMC40OCAxMC4yNC0yOC42NzIgMi4wNDgtOC4xOTItOC4xOTItMTAuMjQtMjAuNDgtMi4wNDgtMjguNjcybDEyMC44MzItMTQzLjM2LTEyMC44MzItMTQzLjM2Yy04LjE5Mi04LjE5Mi02LjE0NC0yMi41MjggMi4wNDgtMjguNjcyIDguMTkyLTguMTkyIDIyLjUyOC02LjE0NCAyOC42NzIgMi4wNDhsMTE2LjczNiAxMzcuMjE2eiIgcC1pZD0iNDk4NCIgZmlsbD0iI2RiZGJkYiI+PC9wYXRoPjwvc3ZnPg==";const Qo={class:"container"},Xo=["src","alt"],qo={class:"name"},Zo=["href"],Jo={key:1},Ko=["innerHTML"],$o={flex:"~ inline gap-2",py2:"","text-2xl":""},el=["href","aria-label"],tl=["href","aria-label"],nl=["href","title","aria-label"],il={key:0,"bg-gray:5":"",mb2:"",p2:"",rounded:"",grid:"~ cols-[20px_1fr] gap-y-2","items-start":"",w:"5/6",mxa:""},rl={key:0,class:"code"},sl=["src"],al={class:"code-container"},ol=["href"],ll={key:1,class:"code"},cl=["src"],ul={class:"code-container"},hl=Qi({__name:"TeamMember",props:{data:{}},setup(r){return(e,t)=>(je(),Ke("div",Qo,[Be("img",{class:"avatar",loading:"lazy",width:"150",height:"150","m-auto":"","rounded-full":"","min-w-25":"","min-h-25":"","h-25":"","w-25":"",src:e.data.avatar,alt:`${e.data.name}'s avatar`},null,8,Xo),Be("div",qo,[e.data.github?(je(),Ke("a",{key:0,href:`https://github.com/${e.data.github}`,target:"_blank"},mi(e.data.name),9,Zo)):(je(),Ke("div",Jo,mi(e.data.name),1))]),Be("div",{class:"description",innerHTML:e.data.description},null,8,Ko),Be("div",$o,[e.data.github?(je(),Ke("a",{key:0,class:"i-carbon-logo-github inline-block text-current op30 hover:op100 mya transition duration-200",href:`https://github.com/${e.data.github}`,target:"_blank",rel:"noopener noreferrer","aria-label":`${e.data.name} on GitHub`},null,8,el)):Sn("",!0),e.data.twitter?(je(),Ke("a",{key:1,class:"i-carbon-logo-twitter inline-block text-1.3em mya text-current op30 hover:op100 transition duration-200",href:`https://twitter.com/${e.data.twitter}`,target:"_blank",rel:"noopener noreferrer","aria-label":`${e.data.name} on Twitter`},null,8,tl)):Sn("",!0),e.data.sponsors?(je(),Ke("a",{key:2,class:"i-carbon-favorite-filled inline-block mya text-current op30 hover:op100 transition duration-200",href:`https://github.com/sponsors/${e.data.github}`,target:"_blank",rel:"noopener noreferrer",title:`Sponsor ${e.data.name}`,"aria-label":`Sponsor ${e.data.name}`},null,8,nl)):Sn("",!0)]),e.data.functions||e.data.packages?(je(),Ke("div",il,[e.data.functions?(je(),Ke("div",rl,[Be("img",{class:"icon",src:Wi(Yo),alt:""},null,8,sl),Be("div",al,[(je(!0),Ke(si,null,Or(e.data.functions,n=>(je(),Ke("a",{key:n,href:`/docs/hooks/${n}/`,target:"_blank"},[Be("code",null,mi(n),1)],8,ol))),128))])])):Sn("",!0),e.data.packages?(je(),Ke("div",ll,[Be("img",{class:"icon",src:Wi(jo),alt:""},null,8,cl),Be("div",ul,[(je(!0),Ke(si,null,Or(e.data.packages,n=>(je(),Ke("a",{key:n,href:""},[Be("code",null,mi(n),1)]))),128))])])):Sn("",!0)])):Sn("",!0)]))}});var dl=Xi(hl,[["__scopeId","data-v-360a846b"]]);const fl=r=>(ya("data-v-345e01e7"),r=r(),Sa(),r),pl=fl(()=>Be("div",null,[Be("h2",{class:"name"}," Meet The Team ")],-1)),ml={class:"main"},gl={class:"grid"},_l=Qi({__name:"HomeTeam",setup(r){return(e,t)=>(je(),Ke(si,null,[pl,Be("div",ml,[Be("div",gl,[(je(!0),Ke(si,null,Or(Wi(Vo),n=>(je(),fo(dl,{key:n.github,data:n},null,8,["data"]))),128))])])],64))}});var Lp=Xi(_l,[["__scopeId","data-v-345e01e7"]]);const xl=r=>(ya("data-v-23f2a419"),r=r(),Sa(),r),vl={class:"container"},Ml=xl(()=>Be("div",{class:"img"},null,-1)),yl=["src"],Sl=Qi({__name:"Icon",setup(r){return(e,t)=>(je(),Ke("div",vl,[Ml,Be("img",{src:Wi(Wo),alt:"vue-hooks-plus"},null,8,yl)]))}});var Dp=Xi(Sl,[["__scopeId","data-v-23f2a419"]]);/** * @license * Copyright 2010-2022 Three.js Authors * SPDX-License-Identifier: MIT diff --git a/hooks/assets/chunks/demo.fc72dc8f.js b/hooks/assets/chunks/demo.ef73852f.js similarity index 100% rename from hooks/assets/chunks/demo.fc72dc8f.js rename to hooks/assets/chunks/demo.ef73852f.js diff --git a/hooks/assets/en_index.md.73c7f509.js b/hooks/assets/en_index.md.16c82b5d.js similarity index 97% rename from hooks/assets/en_index.md.73c7f509.js rename to hooks/assets/en_index.md.16c82b5d.js index 28769062d..65dad1273 100644 --- a/hooks/assets/en_index.md.73c7f509.js +++ b/hooks/assets/en_index.md.16c82b5d.js @@ -1 +1 @@ -import{I as v,W as r,_ as p,H as l}from"./chunks/Wave.2a7b5754.js";import{e as h,o,c as d,a as t,d as a,u as _,f as i,w as u,_ as m,b as f,p as x,g}from"./app.5e4b2b03.js";const s=e=>(x("data-v-6260c8ca"),e=e(),g(),e),b={class:"home"},F={id:"hero"},w=s(()=>a("h1",{class:"tagline"},[a("span",{class:"accent"},"VueHooks"),a("br"),i("Plus ")],-1)),S=s(()=>a("p",{class:"description"},null,-1)),y={class:"actions"},k=["href"],H=s(()=>a("svg",{class:"icon",xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24"},[a("path",{d:"M13.025 1l-2.847 2.828 6.176 6.176h-16.354v3.992h16.354l-6.176 6.176 2.847 2.828 10.975-11z"})],-1)),I=f('

\u{1F6F8} Hooks for vue3

Contains a comprehensive collection of basic Hooks.

\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F Easy to learn and use

Simple language and easy-to-use features, easy to use, detailed documentation.

\u{1F3AF} TypeScript

Written in TypeScript with predictable static types.

\u{1F3AA} Interactive demo

Interactive demo, immersive.

\u{1F50B} Support SSR

Friendly support for server-side rendering.

\u{1F9BE} useRequest

Preferred useRequest, Powerful request middle tier.

\u{1F93A} Playground

there's ample scope for one's abilities.

\u{1F9E9} On-demand load

Take what you want, the package is smaller.

\u{1F510} Safe

Perfect test, safe and reliable.

',1),E=s(()=>a("div",{class:"demo-name"}," Demo.vue ",-1)),N=h({__name:"Home-EN",setup(e){const c="production";return(n,C)=>(o(),d("div",b,[t(v),a("section",F,[t(r),w,S,a("p",y,[a("a",{class:"get-started",href:_(c)==="development"?"/en/guide/":"/docs/hooks/en/guide/",style:{position:"relative","z-index":"9"}},[i(" Get Started "),H],8,k)])]),I,t(p,null,{default:u(()=>[E]),_:1}),t(l)]))}});var P=m(N,[["__scopeId","data-v-6260c8ca"]]);const A=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","sidebar":false,"source":{"show":false},"realPath":"docs/index.en-US.md"},"headers":[],"relativePath":"en/index.md"}'),B={name:"en/index.md"},q=Object.assign(B,{setup(e){return(c,n)=>(o(),d("div",null,[t(P)]))}});export{A as __pageData,q as default}; +import{I as v,W as r,_ as p,H as l}from"./chunks/Wave.55507600.js";import{e as h,o,c as d,a as t,d as a,u as _,f as i,w as u,_ as m,b as f,p as x,g}from"./app.5e4b2b03.js";const s=e=>(x("data-v-6260c8ca"),e=e(),g(),e),b={class:"home"},F={id:"hero"},w=s(()=>a("h1",{class:"tagline"},[a("span",{class:"accent"},"VueHooks"),a("br"),i("Plus ")],-1)),S=s(()=>a("p",{class:"description"},null,-1)),y={class:"actions"},k=["href"],H=s(()=>a("svg",{class:"icon",xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24"},[a("path",{d:"M13.025 1l-2.847 2.828 6.176 6.176h-16.354v3.992h16.354l-6.176 6.176 2.847 2.828 10.975-11z"})],-1)),I=f('

\u{1F6F8} Hooks for vue3

Contains a comprehensive collection of basic Hooks.

\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F Easy to learn and use

Simple language and easy-to-use features, easy to use, detailed documentation.

\u{1F3AF} TypeScript

Written in TypeScript with predictable static types.

\u{1F3AA} Interactive demo

Interactive demo, immersive.

\u{1F50B} Support SSR

Friendly support for server-side rendering.

\u{1F9BE} useRequest

Preferred useRequest, Powerful request middle tier.

\u{1F93A} Playground

there's ample scope for one's abilities.

\u{1F9E9} On-demand load

Take what you want, the package is smaller.

\u{1F510} Safe

Perfect test, safe and reliable.

',1),E=s(()=>a("div",{class:"demo-name"}," Demo.vue ",-1)),N=h({__name:"Home-EN",setup(e){const c="production";return(n,C)=>(o(),d("div",b,[t(v),a("section",F,[t(r),w,S,a("p",y,[a("a",{class:"get-started",href:_(c)==="development"?"/en/guide/":"/docs/hooks/en/guide/",style:{position:"relative","z-index":"9"}},[i(" Get Started "),H],8,k)])]),I,t(p,null,{default:u(()=>[E]),_:1}),t(l)]))}});var P=m(N,[["__scopeId","data-v-6260c8ca"]]);const A=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","sidebar":false,"source":{"show":false},"realPath":"docs/index.en-US.md"},"headers":[],"relativePath":"en/index.md"}'),B={name:"en/index.md"},q=Object.assign(B,{setup(e){return(c,n)=>(o(),d("div",null,[t(P)]))}});export{A as __pageData,q as default}; diff --git a/hooks/assets/en_index.md.73c7f509.lean.js b/hooks/assets/en_index.md.16c82b5d.lean.js similarity index 97% rename from hooks/assets/en_index.md.73c7f509.lean.js rename to hooks/assets/en_index.md.16c82b5d.lean.js index 28769062d..65dad1273 100644 --- a/hooks/assets/en_index.md.73c7f509.lean.js +++ b/hooks/assets/en_index.md.16c82b5d.lean.js @@ -1 +1 @@ -import{I as v,W as r,_ as p,H as l}from"./chunks/Wave.2a7b5754.js";import{e as h,o,c as d,a as t,d as a,u as _,f as i,w as u,_ as m,b as f,p as x,g}from"./app.5e4b2b03.js";const s=e=>(x("data-v-6260c8ca"),e=e(),g(),e),b={class:"home"},F={id:"hero"},w=s(()=>a("h1",{class:"tagline"},[a("span",{class:"accent"},"VueHooks"),a("br"),i("Plus ")],-1)),S=s(()=>a("p",{class:"description"},null,-1)),y={class:"actions"},k=["href"],H=s(()=>a("svg",{class:"icon",xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24"},[a("path",{d:"M13.025 1l-2.847 2.828 6.176 6.176h-16.354v3.992h16.354l-6.176 6.176 2.847 2.828 10.975-11z"})],-1)),I=f('

\u{1F6F8} Hooks for vue3

Contains a comprehensive collection of basic Hooks.

\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F Easy to learn and use

Simple language and easy-to-use features, easy to use, detailed documentation.

\u{1F3AF} TypeScript

Written in TypeScript with predictable static types.

\u{1F3AA} Interactive demo

Interactive demo, immersive.

\u{1F50B} Support SSR

Friendly support for server-side rendering.

\u{1F9BE} useRequest

Preferred useRequest, Powerful request middle tier.

\u{1F93A} Playground

there's ample scope for one's abilities.

\u{1F9E9} On-demand load

Take what you want, the package is smaller.

\u{1F510} Safe

Perfect test, safe and reliable.

',1),E=s(()=>a("div",{class:"demo-name"}," Demo.vue ",-1)),N=h({__name:"Home-EN",setup(e){const c="production";return(n,C)=>(o(),d("div",b,[t(v),a("section",F,[t(r),w,S,a("p",y,[a("a",{class:"get-started",href:_(c)==="development"?"/en/guide/":"/docs/hooks/en/guide/",style:{position:"relative","z-index":"9"}},[i(" Get Started "),H],8,k)])]),I,t(p,null,{default:u(()=>[E]),_:1}),t(l)]))}});var P=m(N,[["__scopeId","data-v-6260c8ca"]]);const A=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","sidebar":false,"source":{"show":false},"realPath":"docs/index.en-US.md"},"headers":[],"relativePath":"en/index.md"}'),B={name:"en/index.md"},q=Object.assign(B,{setup(e){return(c,n)=>(o(),d("div",null,[t(P)]))}});export{A as __pageData,q as default}; +import{I as v,W as r,_ as p,H as l}from"./chunks/Wave.55507600.js";import{e as h,o,c as d,a as t,d as a,u as _,f as i,w as u,_ as m,b as f,p as x,g}from"./app.5e4b2b03.js";const s=e=>(x("data-v-6260c8ca"),e=e(),g(),e),b={class:"home"},F={id:"hero"},w=s(()=>a("h1",{class:"tagline"},[a("span",{class:"accent"},"VueHooks"),a("br"),i("Plus ")],-1)),S=s(()=>a("p",{class:"description"},null,-1)),y={class:"actions"},k=["href"],H=s(()=>a("svg",{class:"icon",xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24"},[a("path",{d:"M13.025 1l-2.847 2.828 6.176 6.176h-16.354v3.992h16.354l-6.176 6.176 2.847 2.828 10.975-11z"})],-1)),I=f('

\u{1F6F8} Hooks for vue3

Contains a comprehensive collection of basic Hooks.

\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F Easy to learn and use

Simple language and easy-to-use features, easy to use, detailed documentation.

\u{1F3AF} TypeScript

Written in TypeScript with predictable static types.

\u{1F3AA} Interactive demo

Interactive demo, immersive.

\u{1F50B} Support SSR

Friendly support for server-side rendering.

\u{1F9BE} useRequest

Preferred useRequest, Powerful request middle tier.

\u{1F93A} Playground

there's ample scope for one's abilities.

\u{1F9E9} On-demand load

Take what you want, the package is smaller.

\u{1F510} Safe

Perfect test, safe and reliable.

',1),E=s(()=>a("div",{class:"demo-name"}," Demo.vue ",-1)),N=h({__name:"Home-EN",setup(e){const c="production";return(n,C)=>(o(),d("div",b,[t(v),a("section",F,[t(r),w,S,a("p",y,[a("a",{class:"get-started",href:_(c)==="development"?"/en/guide/":"/docs/hooks/en/guide/",style:{position:"relative","z-index":"9"}},[i(" Get Started "),H],8,k)])]),I,t(p,null,{default:u(()=>[E]),_:1}),t(l)]))}});var P=m(N,[["__scopeId","data-v-6260c8ca"]]);const A=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","sidebar":false,"source":{"show":false},"realPath":"docs/index.en-US.md"},"headers":[],"relativePath":"en/index.md"}'),B={name:"en/index.md"},q=Object.assign(B,{setup(e){return(c,n)=>(o(),d("div",null,[t(P)]))}});export{A as __pageData,q as default}; diff --git a/hooks/assets/en_useSetState_index.md.7069af08.js b/hooks/assets/en_useSetState_index.md.f049ade8.js similarity index 99% rename from hooks/assets/en_useSetState_index.md.7069af08.js rename to hooks/assets/en_useSetState_index.md.f049ade8.js index 1dd63a060..0c2df1e13 100644 --- a/hooks/assets/en_useSetState_index.md.7069af08.js +++ b/hooks/assets/en_useSetState_index.md.f049ade8.js @@ -1,4 +1,4 @@ -import{D as p}from"./chunks/demo.fc72dc8f.js";import{q as C,o,c as E,a,w as e,d as s,f as n,b as t}from"./app.5e4b2b03.js";const F=s("h1",{id:"usesetstate",tabindex:"-1"},[n("useSetState "),s("a",{class:"header-anchor",href:"#usesetstate","aria-hidden":"true"},"#")],-1),A=s("p",null,"Manage object type responsive Hooks, supporting deconstructing assignments and facilitating maintenance.",-1),c=s("h2",{id:"code-demonstration",tabindex:"-1"},[n("Code demonstration "),s("a",{class:"header-anchor",href:"#code-demonstration","aria-hidden":"true"},"#")],-1),D=t(`

API

const [state, setState] = useSetState<S extends Record<string, any>>
+import{D as p}from"./chunks/demo.ef73852f.js";import{q as C,o,c as E,a,w as e,d as s,f as n,b as t}from"./app.5e4b2b03.js";const F=s("h1",{id:"usesetstate",tabindex:"-1"},[n("useSetState "),s("a",{class:"header-anchor",href:"#usesetstate","aria-hidden":"true"},"#")],-1),A=s("p",null,"Manage object type responsive Hooks, supporting deconstructing assignments and facilitating maintenance.",-1),c=s("h2",{id:"code-demonstration",tabindex:"-1"},[n("Code demonstration "),s("a",{class:"header-anchor",href:"#code-demonstration","aria-hidden":"true"},"#")],-1),D=t(`

API

const [state, setState] = useSetState<S extends Record<string, any>>
 (initialState: StateType<S>)
 :[
   [S] extends [Ref<any>] ? S : Ref<UnwrapRef<S>>,
diff --git a/hooks/assets/en_useSetState_index.md.7069af08.lean.js b/hooks/assets/en_useSetState_index.md.f049ade8.lean.js
similarity index 99%
rename from hooks/assets/en_useSetState_index.md.7069af08.lean.js
rename to hooks/assets/en_useSetState_index.md.f049ade8.lean.js
index 626d78187..23268a1e7 100644
--- a/hooks/assets/en_useSetState_index.md.7069af08.lean.js
+++ b/hooks/assets/en_useSetState_index.md.f049ade8.lean.js
@@ -1 +1 @@
-import{D as p}from"./chunks/demo.fc72dc8f.js";import{q as C,o,c as E,a,w as e,d as s,f as n,b as t}from"./app.5e4b2b03.js";const F=s("h1",{id:"usesetstate",tabindex:"-1"},[n("useSetState "),s("a",{class:"header-anchor",href:"#usesetstate","aria-hidden":"true"},"#")],-1),A=s("p",null,"Manage object type responsive Hooks, supporting deconstructing assignments and facilitating maintenance.",-1),c=s("h2",{id:"code-demonstration",tabindex:"-1"},[n("Code demonstration "),s("a",{class:"header-anchor",href:"#code-demonstration","aria-hidden":"true"},"#")],-1),D=t("",4),d=JSON.parse('{"title":"useSetState","description":"","frontmatter":{"map":{"path":"/useSetState"},"realPath":"src/useSetState/index.en-US.md"},"headers":[{"level":2,"title":"Code demonstration","slug":"code-demonstration"},{"level":2,"title":"API","slug":"api"},{"level":2,"title":"Source","slug":"source"}],"relativePath":"en/useSetState/index.md"}'),B={name:"en/useSetState/index.md"},h=Object.assign(B,{setup(r){return(y,i)=>{const l=C("demo");return o(),E("div",null,[F,A,c,a(l,{code:"%3Ctemplate%3E%0A%20%20%3Cdiv%3E%7B%7B%20JSON.stringify(state)%20%7D%7D%3C%2Fdiv%3E%0A%20%20%3Cdiv%20class%3D%22contain%22%3E%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22initAge()%22%3E%0A%20%20%20%20%20%20Add%20age%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22updateAge()%22%3E%0A%20%20%20%20%20%20Update%20age%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22addTag()%22%3E%0A%20%20%20%20%20%20Add%20tag%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22cover()%22%3E%0A%20%20%20%20%20%20cover%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%20%20%3C%2Fdiv%3E%0A%3C%2Ftemplate%3E%0A%0A%3Cscript%20lang%3D%22ts%22%20setup%3E%0A%20%20import%20%7B%20useSetState%20%7D%20from%20'vue-hooks-plus'%0A%0A%20%20const%20%5Bstate%2C%20setState%5D%20%3D%20useSetState(%7B%20name%3A%20'vue-hooks-plus'%20%7D)%0A%0A%20%20const%20initAge%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20age%3A%201%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20addTag%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20...state.value%2C%0A%20%20%20%20%20%20age%3A%203%2C%0A%20%20%20%20%20%20tag%3A%20'nice'%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20updateAge%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20age%3A%202%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20cover%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20age%3A%200%2C%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20true%2C%0A%20%20%20%20)%0A%20%20%7D%0A%3C%2Fscript%3E%0A%0A%3Cstyle%20scoped%20lang%3D%22less%22%3E%0A%20%20.contain%20%7B%0A%20%20%20%20button%20%7B%0A%20%20%20%20%20%20margin-right%3A%208px%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%3C%2Fstyle%3E%0A",highlightedCode:"%3Cpre%20v-pre%20class%3D%22vp-code-dark%22%3E%3Ccode%3E%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%7B%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3EJSON%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3Estringify%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E)%20%7D%7D%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclass%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bcontain%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Add%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Update%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Add%20tag%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20cover%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bts%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Esetup%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Eimport%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Efrom%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%5B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%5D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ename%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E1%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20...%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evalue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E3%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bnice%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E2%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E0%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%7D%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Etrue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Escoped%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bless%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E.contain%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ebutton%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20margin-right%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E8%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Epx%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%3C%2Fcode%3E%3C%2Fpre%3E%3Cpre%20v-pre%20class%3D%22vp-code-light%22%3E%3Ccode%3E%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%7B%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3EJSON%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Estringify%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(state)%20%7D%7D%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclass%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bcontain%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Add%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Update%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Add%20tag%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20cover%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bts%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Esetup%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Eimport%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%20useSetState%20%7D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Efrom%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%5B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%5D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%20name%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E1%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E...%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3Estate.value%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E3%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20tag%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bnice%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E2%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E0%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%7D%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Etrue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Escoped%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bless%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E.contain%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ebutton%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Emargin-right%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E8%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Epx%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%3C%2Fcode%3E%3C%2Fpre%3E",src:"/Users/yangjie/WebCode/npm\u5E93/vue-hooks-plus/vue-hooks-plus/packages/hooks/src/useSetState/demo/demo.vue",title:"Basic usage",desc:""},{default:e(()=>[a(p)]),_:1}),D])}}});export{d as __pageData,h as default};
+import{D as p}from"./chunks/demo.ef73852f.js";import{q as C,o,c as E,a,w as e,d as s,f as n,b as t}from"./app.5e4b2b03.js";const F=s("h1",{id:"usesetstate",tabindex:"-1"},[n("useSetState "),s("a",{class:"header-anchor",href:"#usesetstate","aria-hidden":"true"},"#")],-1),A=s("p",null,"Manage object type responsive Hooks, supporting deconstructing assignments and facilitating maintenance.",-1),c=s("h2",{id:"code-demonstration",tabindex:"-1"},[n("Code demonstration "),s("a",{class:"header-anchor",href:"#code-demonstration","aria-hidden":"true"},"#")],-1),D=t("",4),d=JSON.parse('{"title":"useSetState","description":"","frontmatter":{"map":{"path":"/useSetState"},"realPath":"src/useSetState/index.en-US.md"},"headers":[{"level":2,"title":"Code demonstration","slug":"code-demonstration"},{"level":2,"title":"API","slug":"api"},{"level":2,"title":"Source","slug":"source"}],"relativePath":"en/useSetState/index.md"}'),B={name:"en/useSetState/index.md"},h=Object.assign(B,{setup(r){return(y,i)=>{const l=C("demo");return o(),E("div",null,[F,A,c,a(l,{code:"%3Ctemplate%3E%0A%20%20%3Cdiv%3E%7B%7B%20JSON.stringify(state)%20%7D%7D%3C%2Fdiv%3E%0A%20%20%3Cdiv%20class%3D%22contain%22%3E%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22initAge()%22%3E%0A%20%20%20%20%20%20Add%20age%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22updateAge()%22%3E%0A%20%20%20%20%20%20Update%20age%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22addTag()%22%3E%0A%20%20%20%20%20%20Add%20tag%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22cover()%22%3E%0A%20%20%20%20%20%20cover%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%20%20%3C%2Fdiv%3E%0A%3C%2Ftemplate%3E%0A%0A%3Cscript%20lang%3D%22ts%22%20setup%3E%0A%20%20import%20%7B%20useSetState%20%7D%20from%20'vue-hooks-plus'%0A%0A%20%20const%20%5Bstate%2C%20setState%5D%20%3D%20useSetState(%7B%20name%3A%20'vue-hooks-plus'%20%7D)%0A%0A%20%20const%20initAge%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20age%3A%201%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20addTag%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20...state.value%2C%0A%20%20%20%20%20%20age%3A%203%2C%0A%20%20%20%20%20%20tag%3A%20'nice'%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20updateAge%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20age%3A%202%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20cover%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20age%3A%200%2C%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20true%2C%0A%20%20%20%20)%0A%20%20%7D%0A%3C%2Fscript%3E%0A%0A%3Cstyle%20scoped%20lang%3D%22less%22%3E%0A%20%20.contain%20%7B%0A%20%20%20%20button%20%7B%0A%20%20%20%20%20%20margin-right%3A%208px%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%3C%2Fstyle%3E%0A",highlightedCode:"%3Cpre%20v-pre%20class%3D%22vp-code-dark%22%3E%3Ccode%3E%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%7B%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3EJSON%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3Estringify%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E)%20%7D%7D%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclass%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bcontain%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Add%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Update%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Add%20tag%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20cover%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bts%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Esetup%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Eimport%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Efrom%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%5B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%5D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ename%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E1%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20...%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evalue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E3%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bnice%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E2%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E0%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%7D%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Etrue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Escoped%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bless%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E.contain%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ebutton%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20margin-right%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E8%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Epx%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%3C%2Fcode%3E%3C%2Fpre%3E%3Cpre%20v-pre%20class%3D%22vp-code-light%22%3E%3Ccode%3E%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%7B%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3EJSON%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Estringify%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(state)%20%7D%7D%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclass%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bcontain%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Add%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Update%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Add%20tag%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20cover%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bts%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Esetup%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Eimport%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%20useSetState%20%7D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Efrom%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%5B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%5D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%20name%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E1%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E...%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3Estate.value%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E3%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20tag%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bnice%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E2%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E0%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%7D%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Etrue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Escoped%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bless%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E.contain%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ebutton%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Emargin-right%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E8%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Epx%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%3C%2Fcode%3E%3C%2Fpre%3E",src:"/Users/yangjie/WebCode/npm\u5E93/vue-hooks-plus/vue-hooks-plus/packages/hooks/src/useSetState/demo/demo.vue",title:"Basic usage",desc:""},{default:e(()=>[a(p)]),_:1}),D])}}});export{d as __pageData,h as default};
diff --git a/hooks/assets/index.md.08000111.js b/hooks/assets/index.md.d89509a8.js
similarity index 98%
rename from hooks/assets/index.md.08000111.js
rename to hooks/assets/index.md.d89509a8.js
index 9613872a2..188d5aa13 100644
--- a/hooks/assets/index.md.08000111.js
+++ b/hooks/assets/index.md.d89509a8.js
@@ -1 +1 @@
-import{I as v,W as F,_,H as n}from"./chunks/Wave.2a7b5754.js";import{e as h,o as d,c as o,a as t,d as u,u as p,f as c,w as l,_ as f,b as r,p as B,g as C}from"./app.5e4b2b03.js";const s=a=>(B("data-v-9f787786"),a=a(),C(),a),E={class:"home"},m={class:"bg"},x={id:"hero"},A=s(()=>u("h1",{class:"tagline"},[u("span",{class:"accent"},"VueHooks"),u("br"),c("Plus ")],-1)),D=s(()=>u("p",{class:"description"},null,-1)),b={class:"actions",style:{position:"relative","z-index":"9"}},g=["href"],w=s(()=>u("svg",{class:"icon",xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24"},[u("path",{d:"M13.025 1l-2.847 2.828 6.176 6.176h-16.354v3.992h16.354l-6.176 6.176 2.847 2.828 10.975-11z"})],-1)),S=r('

\u{1F6F8} Vue3 \u7684 Hooks

\u57FA\u7840\u548C\u9AD8\u7EA7\u7684 hook\uFF0C \u9AD8\u6027\u80FD\u903B\u8F91\u7684\u62BD\u8C61\u5C01\u88C5\uFF0C\u6EE1\u8DB3\u5927\u91CF\u573A\u666F\u3002

\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F \u7B80\u6D01\u6613\u7528

\u7B80\u6D01\u7684\u8BED\u6CD5\u548C\u6613\u7528\u7684\u7279\u6027\uFF0C\u8F7B\u677E\u4E0A\u624B\uFF0C\u8BE6\u7EC6\u7684\u6587\u6863\u3002

\u{1F3AF} TypeScript

\u4F7F\u7528 TypeScript \u6784\u5EFA\uFF0C\u63D0\u4F9B\u5B8C\u6574\u7684\u7C7B\u578B\u5B9A\u4E49\u6587\u4EF6\uFF0C\u5B89\u5168\u4E25\u8C28\u3002

\u{1F3AA} \u4EA4\u4E92\u5F0Fdemo\u6F14\u793A

\u773C\u89C1\u4E3A\u5B9E\uFF0C\u8EAB\u4E34\u5176\u5883\u3002

\u{1F50B} \u652F\u6301 SSR

\u670D\u52A1\u5668\u7AEF\u6E32\u67D3\u7684\u53CB\u597D\u652F\u6301\u3002

\u{1F9BE} useRequest

\u57FA\u4E8E\u63D2\u4EF6\u6A21\u5F0F\u8BBE\u8BA1\u7684\u8BF7\u6C42\u51FD\u6570\u3002

\u{1F93A} \u6F14\u7EC3\u573A

\u5728\u7EBF\u7F16\u7801\uFF0C\u5927\u6709\u7528\u6B66\u4E4B\u5730\u3002

\u{1F9E9} \u6309\u9700\u52A0\u8F7D

\u62FF\u4F60\u60F3\u8981\uFF0C\u5305\u4F53\u79EF\u66F4\u5C0F\u3002

\u{1F510} \u5B89\u5168\u6027

\u6D4B\u8BD5\u5B8C\u5584\uFF0C\u5B89\u5168\u53EF\u9760\u3002

',1),H=s(()=>u("div",{class:"demo-name"}," Demo.vue ",-1)),k=h({__name:"Home",setup(a){const e="production";return(i,N)=>(d(),o("div",E,[t(v),u("div",m,[u("section",x,[t(F),A,D,u("p",b,[u("a",{class:"get-started",href:p(e)==="development"?"/guide/":"/docs/hooks/guide/"},[c(" \u5FEB\u901F\u5F00\u59CB "),w],8,g)])]),S]),t(_,null,{default:l(()=>[H]),_:1}),t(n)]))}});var y=f(k,[["__scopeId","data-v-9f787786"]]);const z=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","sidebar":false,"source":{"show":false},"realPath":"docs/index.zh-CN.md"},"headers":[],"relativePath":"index.md"}'),I={name:"index.md"},P=Object.assign(I,{setup(a){return(e,i)=>(d(),o("div",null,[t(y)]))}});export{z as __pageData,P as default}; +import{I as v,W as F,_,H as n}from"./chunks/Wave.55507600.js";import{e as h,o as d,c as o,a as t,d as u,u as p,f as c,w as l,_ as f,b as r,p as B,g as C}from"./app.5e4b2b03.js";const s=a=>(B("data-v-9f787786"),a=a(),C(),a),E={class:"home"},m={class:"bg"},x={id:"hero"},A=s(()=>u("h1",{class:"tagline"},[u("span",{class:"accent"},"VueHooks"),u("br"),c("Plus ")],-1)),D=s(()=>u("p",{class:"description"},null,-1)),b={class:"actions",style:{position:"relative","z-index":"9"}},g=["href"],w=s(()=>u("svg",{class:"icon",xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24"},[u("path",{d:"M13.025 1l-2.847 2.828 6.176 6.176h-16.354v3.992h16.354l-6.176 6.176 2.847 2.828 10.975-11z"})],-1)),S=r('

\u{1F6F8} Vue3 \u7684 Hooks

\u57FA\u7840\u548C\u9AD8\u7EA7\u7684 hook\uFF0C \u9AD8\u6027\u80FD\u903B\u8F91\u7684\u62BD\u8C61\u5C01\u88C5\uFF0C\u6EE1\u8DB3\u5927\u91CF\u573A\u666F\u3002

\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F \u7B80\u6D01\u6613\u7528

\u7B80\u6D01\u7684\u8BED\u6CD5\u548C\u6613\u7528\u7684\u7279\u6027\uFF0C\u8F7B\u677E\u4E0A\u624B\uFF0C\u8BE6\u7EC6\u7684\u6587\u6863\u3002

\u{1F3AF} TypeScript

\u4F7F\u7528 TypeScript \u6784\u5EFA\uFF0C\u63D0\u4F9B\u5B8C\u6574\u7684\u7C7B\u578B\u5B9A\u4E49\u6587\u4EF6\uFF0C\u5B89\u5168\u4E25\u8C28\u3002

\u{1F3AA} \u4EA4\u4E92\u5F0Fdemo\u6F14\u793A

\u773C\u89C1\u4E3A\u5B9E\uFF0C\u8EAB\u4E34\u5176\u5883\u3002

\u{1F50B} \u652F\u6301 SSR

\u670D\u52A1\u5668\u7AEF\u6E32\u67D3\u7684\u53CB\u597D\u652F\u6301\u3002

\u{1F9BE} useRequest

\u57FA\u4E8E\u63D2\u4EF6\u6A21\u5F0F\u8BBE\u8BA1\u7684\u8BF7\u6C42\u51FD\u6570\u3002

\u{1F93A} \u6F14\u7EC3\u573A

\u5728\u7EBF\u7F16\u7801\uFF0C\u5927\u6709\u7528\u6B66\u4E4B\u5730\u3002

\u{1F9E9} \u6309\u9700\u52A0\u8F7D

\u62FF\u4F60\u60F3\u8981\uFF0C\u5305\u4F53\u79EF\u66F4\u5C0F\u3002

\u{1F510} \u5B89\u5168\u6027

\u6D4B\u8BD5\u5B8C\u5584\uFF0C\u5B89\u5168\u53EF\u9760\u3002

',1),H=s(()=>u("div",{class:"demo-name"}," Demo.vue ",-1)),k=h({__name:"Home",setup(a){const e="production";return(i,N)=>(d(),o("div",E,[t(v),u("div",m,[u("section",x,[t(F),A,D,u("p",b,[u("a",{class:"get-started",href:p(e)==="development"?"/guide/":"/docs/hooks/guide/"},[c(" \u5FEB\u901F\u5F00\u59CB "),w],8,g)])]),S]),t(_,null,{default:l(()=>[H]),_:1}),t(n)]))}});var y=f(k,[["__scopeId","data-v-9f787786"]]);const z=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","sidebar":false,"source":{"show":false},"realPath":"docs/index.zh-CN.md"},"headers":[],"relativePath":"index.md"}'),I={name:"index.md"},P=Object.assign(I,{setup(a){return(e,i)=>(d(),o("div",null,[t(y)]))}});export{z as __pageData,P as default}; diff --git a/hooks/assets/index.md.08000111.lean.js b/hooks/assets/index.md.d89509a8.lean.js similarity index 98% rename from hooks/assets/index.md.08000111.lean.js rename to hooks/assets/index.md.d89509a8.lean.js index 9613872a2..188d5aa13 100644 --- a/hooks/assets/index.md.08000111.lean.js +++ b/hooks/assets/index.md.d89509a8.lean.js @@ -1 +1 @@ -import{I as v,W as F,_,H as n}from"./chunks/Wave.2a7b5754.js";import{e as h,o as d,c as o,a as t,d as u,u as p,f as c,w as l,_ as f,b as r,p as B,g as C}from"./app.5e4b2b03.js";const s=a=>(B("data-v-9f787786"),a=a(),C(),a),E={class:"home"},m={class:"bg"},x={id:"hero"},A=s(()=>u("h1",{class:"tagline"},[u("span",{class:"accent"},"VueHooks"),u("br"),c("Plus ")],-1)),D=s(()=>u("p",{class:"description"},null,-1)),b={class:"actions",style:{position:"relative","z-index":"9"}},g=["href"],w=s(()=>u("svg",{class:"icon",xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24"},[u("path",{d:"M13.025 1l-2.847 2.828 6.176 6.176h-16.354v3.992h16.354l-6.176 6.176 2.847 2.828 10.975-11z"})],-1)),S=r('

\u{1F6F8} Vue3 \u7684 Hooks

\u57FA\u7840\u548C\u9AD8\u7EA7\u7684 hook\uFF0C \u9AD8\u6027\u80FD\u903B\u8F91\u7684\u62BD\u8C61\u5C01\u88C5\uFF0C\u6EE1\u8DB3\u5927\u91CF\u573A\u666F\u3002

\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F \u7B80\u6D01\u6613\u7528

\u7B80\u6D01\u7684\u8BED\u6CD5\u548C\u6613\u7528\u7684\u7279\u6027\uFF0C\u8F7B\u677E\u4E0A\u624B\uFF0C\u8BE6\u7EC6\u7684\u6587\u6863\u3002

\u{1F3AF} TypeScript

\u4F7F\u7528 TypeScript \u6784\u5EFA\uFF0C\u63D0\u4F9B\u5B8C\u6574\u7684\u7C7B\u578B\u5B9A\u4E49\u6587\u4EF6\uFF0C\u5B89\u5168\u4E25\u8C28\u3002

\u{1F3AA} \u4EA4\u4E92\u5F0Fdemo\u6F14\u793A

\u773C\u89C1\u4E3A\u5B9E\uFF0C\u8EAB\u4E34\u5176\u5883\u3002

\u{1F50B} \u652F\u6301 SSR

\u670D\u52A1\u5668\u7AEF\u6E32\u67D3\u7684\u53CB\u597D\u652F\u6301\u3002

\u{1F9BE} useRequest

\u57FA\u4E8E\u63D2\u4EF6\u6A21\u5F0F\u8BBE\u8BA1\u7684\u8BF7\u6C42\u51FD\u6570\u3002

\u{1F93A} \u6F14\u7EC3\u573A

\u5728\u7EBF\u7F16\u7801\uFF0C\u5927\u6709\u7528\u6B66\u4E4B\u5730\u3002

\u{1F9E9} \u6309\u9700\u52A0\u8F7D

\u62FF\u4F60\u60F3\u8981\uFF0C\u5305\u4F53\u79EF\u66F4\u5C0F\u3002

\u{1F510} \u5B89\u5168\u6027

\u6D4B\u8BD5\u5B8C\u5584\uFF0C\u5B89\u5168\u53EF\u9760\u3002

',1),H=s(()=>u("div",{class:"demo-name"}," Demo.vue ",-1)),k=h({__name:"Home",setup(a){const e="production";return(i,N)=>(d(),o("div",E,[t(v),u("div",m,[u("section",x,[t(F),A,D,u("p",b,[u("a",{class:"get-started",href:p(e)==="development"?"/guide/":"/docs/hooks/guide/"},[c(" \u5FEB\u901F\u5F00\u59CB "),w],8,g)])]),S]),t(_,null,{default:l(()=>[H]),_:1}),t(n)]))}});var y=f(k,[["__scopeId","data-v-9f787786"]]);const z=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","sidebar":false,"source":{"show":false},"realPath":"docs/index.zh-CN.md"},"headers":[],"relativePath":"index.md"}'),I={name:"index.md"},P=Object.assign(I,{setup(a){return(e,i)=>(d(),o("div",null,[t(y)]))}});export{z as __pageData,P as default}; +import{I as v,W as F,_,H as n}from"./chunks/Wave.55507600.js";import{e as h,o as d,c as o,a as t,d as u,u as p,f as c,w as l,_ as f,b as r,p as B,g as C}from"./app.5e4b2b03.js";const s=a=>(B("data-v-9f787786"),a=a(),C(),a),E={class:"home"},m={class:"bg"},x={id:"hero"},A=s(()=>u("h1",{class:"tagline"},[u("span",{class:"accent"},"VueHooks"),u("br"),c("Plus ")],-1)),D=s(()=>u("p",{class:"description"},null,-1)),b={class:"actions",style:{position:"relative","z-index":"9"}},g=["href"],w=s(()=>u("svg",{class:"icon",xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24"},[u("path",{d:"M13.025 1l-2.847 2.828 6.176 6.176h-16.354v3.992h16.354l-6.176 6.176 2.847 2.828 10.975-11z"})],-1)),S=r('

\u{1F6F8} Vue3 \u7684 Hooks

\u57FA\u7840\u548C\u9AD8\u7EA7\u7684 hook\uFF0C \u9AD8\u6027\u80FD\u903B\u8F91\u7684\u62BD\u8C61\u5C01\u88C5\uFF0C\u6EE1\u8DB3\u5927\u91CF\u573A\u666F\u3002

\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F \u7B80\u6D01\u6613\u7528

\u7B80\u6D01\u7684\u8BED\u6CD5\u548C\u6613\u7528\u7684\u7279\u6027\uFF0C\u8F7B\u677E\u4E0A\u624B\uFF0C\u8BE6\u7EC6\u7684\u6587\u6863\u3002

\u{1F3AF} TypeScript

\u4F7F\u7528 TypeScript \u6784\u5EFA\uFF0C\u63D0\u4F9B\u5B8C\u6574\u7684\u7C7B\u578B\u5B9A\u4E49\u6587\u4EF6\uFF0C\u5B89\u5168\u4E25\u8C28\u3002

\u{1F3AA} \u4EA4\u4E92\u5F0Fdemo\u6F14\u793A

\u773C\u89C1\u4E3A\u5B9E\uFF0C\u8EAB\u4E34\u5176\u5883\u3002

\u{1F50B} \u652F\u6301 SSR

\u670D\u52A1\u5668\u7AEF\u6E32\u67D3\u7684\u53CB\u597D\u652F\u6301\u3002

\u{1F9BE} useRequest

\u57FA\u4E8E\u63D2\u4EF6\u6A21\u5F0F\u8BBE\u8BA1\u7684\u8BF7\u6C42\u51FD\u6570\u3002

\u{1F93A} \u6F14\u7EC3\u573A

\u5728\u7EBF\u7F16\u7801\uFF0C\u5927\u6709\u7528\u6B66\u4E4B\u5730\u3002

\u{1F9E9} \u6309\u9700\u52A0\u8F7D

\u62FF\u4F60\u60F3\u8981\uFF0C\u5305\u4F53\u79EF\u66F4\u5C0F\u3002

\u{1F510} \u5B89\u5168\u6027

\u6D4B\u8BD5\u5B8C\u5584\uFF0C\u5B89\u5168\u53EF\u9760\u3002

',1),H=s(()=>u("div",{class:"demo-name"}," Demo.vue ",-1)),k=h({__name:"Home",setup(a){const e="production";return(i,N)=>(d(),o("div",E,[t(v),u("div",m,[u("section",x,[t(F),A,D,u("p",b,[u("a",{class:"get-started",href:p(e)==="development"?"/guide/":"/docs/hooks/guide/"},[c(" \u5FEB\u901F\u5F00\u59CB "),w],8,g)])]),S]),t(_,null,{default:l(()=>[H]),_:1}),t(n)]))}});var y=f(k,[["__scopeId","data-v-9f787786"]]);const z=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","sidebar":false,"source":{"show":false},"realPath":"docs/index.zh-CN.md"},"headers":[],"relativePath":"index.md"}'),I={name:"index.md"},P=Object.assign(I,{setup(a){return(e,i)=>(d(),o("div",null,[t(y)]))}});export{z as __pageData,P as default}; diff --git a/hooks/assets/style.3a6a2fc5.css b/hooks/assets/style.df3f2973.css similarity index 99% rename from hooks/assets/style.3a6a2fc5.css rename to hooks/assets/style.df3f2973.css index ec41bb943..a2c15709f 100644 --- a/hooks/assets/style.3a6a2fc5.css +++ b/hooks/assets/style.df3f2973.css @@ -1 +1 @@ -@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-cyrillic.f8750142.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-cyrillic-ext.0877b0d9.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-greek.117e1956.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-greek-ext.3e6f6728.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-latin.4fe6132f.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-latin-ext.7cc429bc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-vietnamese.2c644a25.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}:root{--vp-c-white: #ffffff;--vp-c-white-soft: #f9f9f9;--vp-c-white-mute: #f1f1f1;--vp-c-black: #1a1a1a;--vp-c-black-pure: #000000;--vp-c-black-soft: #242424;--vp-c-black-mute: #2f2f2f;--vp-c-gray: #8e8e8e;--vp-c-gray-light-1: #aeaeae;--vp-c-gray-light-2: #c7c7c7;--vp-c-gray-light-3: #d1d1d1;--vp-c-gray-light-4: #e5e5e5;--vp-c-gray-light-5: #f2f2f2;--vp-c-gray-dark-1: #636363;--vp-c-gray-dark-2: #484848;--vp-c-gray-dark-3: #3a3a3a;--vp-c-gray-dark-4: #282828;--vp-c-gray-dark-5: #202020;--vp-c-divider-light-1: rgba(60, 60, 60, .29);--vp-c-divider-light-2: rgba(60, 60, 60, .12);--vp-c-divider-dark-1: rgba(84, 84, 84, .65);--vp-c-divider-dark-2: rgba(84, 84, 84, .48);--vp-c-text-light-1: var(--vp-c-indigo);--vp-c-text-light-2: rgba(60, 60, 60, .7);--vp-c-text-light-3: rgba(60, 60, 60, .33);--vp-c-text-light-4: rgba(60, 60, 60, .18);--vp-c-text-dark-1: rgba(255, 255, 255, .87);--vp-c-text-dark-2: rgba(235, 235, 235, .6);--vp-c-text-dark-3: rgba(235, 235, 235, .38);--vp-c-text-dark-4: rgba(235, 235, 235, .18);--vp-c-indigo: #213547;--vp-c-indigo-soft: #476582;--vp-c-indigo-light: #aac8e4;--vp-c-indigo-lighter: #c9def1;--vp-c-indigo-dark: #1d2f3f;--vp-c-indigo-darker: #14212e;--vp-c-green: #42b883;--vp-c-green-light: #42d392;--vp-c-green-lighter: #35eb9a;--vp-c-green-dark: #33a06f;--vp-c-green-darker: #155f3e;--vp-c-green-dimm-1: rgba(66, 184, 131, .5);--vp-c-green-dimm-2: rgba(66, 184, 131, .25);--vp-c-green-dimm-3: rgba(66, 184, 131, .05);--vp-c-yellow: #ffc517;--vp-c-yellow-light: #fcd253;--vp-c-yellow-lighter: #fcfc7c;--vp-c-yellow-dark: #e0ad15;--vp-c-yellow-darker: #ad850e;--vp-c-yellow-dimm-1: rgba(255, 197, 23, .5);--vp-c-yellow-dimm-2: rgba(255, 197, 23, .25);--vp-c-yellow-dimm-3: rgba(255, 197, 23, .05);--vp-c-red: #ed3c50;--vp-c-red-light: #f54e82;--vp-c-red-lighter: #fd1d7c;--vp-c-red-dark: #cd2d3f;--vp-c-red-darker: #ab2131;--vp-c-red-dimm-1: rgba(237, 60, 80, .5);--vp-c-red-dimm-2: rgba(237, 60, 80, .25);--vp-c-red-dimm-3: rgba(237, 60, 80, .05)}:root{--vp-c-bg: var(--vp-c-white);--vp-c-bg-soft: var(--vp-c-white-soft);--vp-c-bg-mute: var(--vp-c-white-mute);--vp-c-bg-alt: var(--vp-c-white-soft);--vp-c-divider: var(--vp-c-divider-light-1);--vp-c-divider-light: var(--vp-c-divider-light-2);--vp-c-divider-inverse: var(--vp-c-divider-dark-1);--vp-c-divider-inverse-light: var(--vp-c-divider-dark-2);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-4: var(--vp-c-text-light-4);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-4: var(--vp-c-text-dark-4);--vp-c-text-code: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-green);--vp-c-brand-light: var(--vp-c-green-light);--vp-c-brand-lighter: var(--vp-c-green-lighter);--vp-c-brand-dark: var(--vp-c-green-dark);--vp-c-brand-darker: var(--vp-c-green-darker);--vp-c-sponsor: #fd1d7c}.dark{--vp-c-bg: var(--vp-c-black-soft);--vp-c-bg-soft: var(--vp-c-black-mute);--vp-c-bg-mute: var(--vp-c-gray-dark-3);--vp-c-bg-alt: var(--vp-c-black);--vp-c-divider: var(--vp-c-divider-dark-1);--vp-c-divider-light: var(--vp-c-divider-dark-2);--vp-c-divider-inverse: var(--vp-c-divider-light-1);--vp-c-divider-inverse-light: var(--vp-c-divider-light-2);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-4: var(--vp-c-text-dark-4);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-inverse-4: var(--vp-c-text-light-4);--vp-c-text-code: var(--vp-c-indigo-lighter)}:root{--vp-font-family-base: "Inter var experimental", "Inter var", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--vp-font-family-mono: Menlo, Monaco, Consolas, "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-backdrop: 30;--vp-z-index-sidebar: 40;--vp-z-index-footer: 50}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' class='h-6 w-6' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' class='h-6 w-6' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #292d3e;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-text-dark-3);--vp-code-copy-code-hover-bg: rgba(255, 255, 255, .05);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2)}.dark{--vp-code-block-bg: var(--vp-c-bg-alt)}:root{--vp-button-brand-border: var(--vp-c-brand-light);--vp-button-brand-text: var(--vp-c-text-dark-1);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-light);--vp-button-brand-hover-text: var(--vp-c-text-dark-1);--vp-button-brand-hover-bg: var(--vp-c-brand-light);--vp-button-brand-active-border: var(--vp-c-brand-light);--vp-button-brand-active-text: var(--vp-c-text-dark-1);--vp-button-brand-active-bg: var(--vp-button-brand-bg);--vp-button-alt-border: var(--vp-c-gray-light-3);--vp-button-alt-text: var(--vp-c-text-light-1);--vp-button-alt-bg: var(--vp-c-gray-light-5);--vp-button-alt-hover-border: var(--vp-c-gray-light-3);--vp-button-alt-hover-text: var(--vp-c-text-light-1);--vp-button-alt-hover-bg: var(--vp-c-gray-light-4);--vp-button-alt-active-border: var(--vp-c-gray-light-3);--vp-button-alt-active-text: var(--vp-c-text-light-1);--vp-button-alt-active-bg: var(--vp-c-gray-light-3);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-brand-border: var(--vp-c-brand-light);--vp-button-brand-text: var(--vp-c-text-dark-1);--vp-button-brand-bg: var(--vp-c-brand-dark);--vp-button-brand-hover-border: var(--vp-c-brand-lighter);--vp-button-brand-hover-text: var(--vp-c-text-dark-1);--vp-button-brand-hover-bg: var(--vp-c-brand);--vp-button-brand-active-border: var(--vp-c-brand-lighter);--vp-button-brand-active-text: var(--vp-c-text-dark-1);--vp-button-brand-active-bg: var(--vp-button-brand-bg);--vp-button-alt-border: var(--vp-c-gray-dark-2);--vp-button-alt-text: var(--vp-c-text-dark-1);--vp-button-alt-bg: var(--vp-c-bg-mute);--vp-button-alt-hover-border: var(--vp-c-gray-dark-2);--vp-button-alt-hover-text: var(--vp-c-text-dark-1);--vp-button-alt-hover-bg: var(--vp-c-gray-dark-2);--vp-button-alt-active-border: var(--vp-c-gray-dark-2);--vp-button-alt-active-text: var(--vp-c-text-dark-1);--vp-button-alt-active-bg: var(--vp-button-alt-bg);--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-divider-light);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-white-soft);--vp-custom-block-info-code-bg: var(--vp-c-gray-light-4);--vp-custom-block-tip-border: var(--vp-c-green-dimm-1);--vp-custom-block-tip-text: var(--vp-c-green-darker);--vp-custom-block-tip-bg: var(--vp-c-green-dimm-3);--vp-custom-block-tip-code-bg: var(--vp-custom-block-tip-bg);--vp-custom-block-warning-border: var(--vp-c-yellow-dimm-1);--vp-custom-block-warning-text: var(--vp-c-yellow-darker);--vp-custom-block-warning-bg: var(--vp-c-yellow-dimm-3);--vp-custom-block-warning-code-bg: var(--vp-custom-block-warning-bg);--vp-custom-block-danger-border: var(--vp-c-red-dimm-1);--vp-custom-block-danger-text: var(--vp-c-red-darker);--vp-custom-block-danger-bg: var(--vp-c-red-dimm-3);--vp-custom-block-danger-code-bg: var(--vp-custom-block-danger-bg);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}.dark{--vp-custom-block-info-border: var(--vp-c-divider-light);--vp-custom-block-info-bg: var(--vp-c-black-mute);--vp-custom-block-info-code-bg: var(--vp-c-gray-dark-4);--vp-custom-block-tip-border: var(--vp-c-green-dimm-2);--vp-custom-block-tip-text: var(--vp-c-green-light);--vp-custom-block-warning-border: var(--vp-c-yellow-dimm-2);--vp-custom-block-warning-text: var(--vp-c-yellow-light);--vp-custom-block-danger-border: var(--vp-c-red-dimm-2);--vp-custom-block-danger-text: var(--vp-c-red-light)}:root{--vp-nav-height: var(--vp-nav-height-mobile);--vp-nav-height-mobile: 56px;--vp-nav-height-desktop: 72px}@media (min-width: 960px){:root{--vp-nav-height: var(--vp-nav-height-desktop)}}:root{--vp-sidebar-width: 272px}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button,[role=button]{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:14px;color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:700}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;transition:opacity .25s}.custom-block a:hover{opacity:.6}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider-light);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{float:left;margin-left:-.87em;padding-right:.23em;font-weight:500;opacity:0;transition:color .25s,opacity .25s}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.vp-doc a:hover{color:var(--vp-c-brand-dark)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:12px 16px}.vp-doc th{font-size:16px;font-weight:600;background-color:var(--vp-c-white-soft)}.dark .vp-doc th{background-color:var(--vp-c-black)}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider-light)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600;text-decoration:underline;transition:opacity .25s}.vp-doc .custom-block a:hover{opacity:.6}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:var(--vp-code-block-bg)}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-bg-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand);transition:color .25s}.vp-doc a:hover>code{color:var(--vp-c-brand-dark)}.vp-doc div[class*=language-]{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:16px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc .highlight-lines{position:absolute;top:0;bottom:0;left:0;padding-top:16px;width:100%;line-height:var(--vp-code-line-height);font-family:var(--vp-font-family-mono);font-size:var(--vp-code-font-size);user-select:none;overflow:hidden}.vp-doc .highlight-lines .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc div[class*=language-].line-numbers-mode pre{padding-left:16px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-c-divider-dark-2);padding-top:16px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>span.copy{position:absolute;top:8px;right:8px;z-index:2;display:block;justify-content:center;align-items:center;border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-block-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:opacity .25s}.vp-doc [class*=language-]:hover>span.copy{opacity:1}.vp-doc [class*=language-]>span.copy:hover{background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>span.copy.copied,.vp-doc [class*=language-]>span.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>span.copy.copied:before,.vp-doc [class*=language-]>span.copy:hover.copied:before{position:relative;left:-65px;display:block;border-radius:4px 0 0 4px;padding-top:8px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]:before{position:absolute;top:6px;right:12px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-text-dark-3);transition:color .5s,opacity .5s}.vp-doc [class*=language-]:hover:before{opacity:0}.vp-doc [class~=language-c]:before{content:"c"}.vp-doc [class~=language-css]:before{content:"css"}.vp-doc [class~=language-go]:before{content:"go"}.vp-doc [class~=language-html]:before{content:"html"}.vp-doc [class~=language-java]:before{content:"java"}.vp-doc [class~=language-javascript]:before{content:"js"}.vp-doc [class~=language-js]:before{content:"js"}.vp-doc [class~=language-json]:before{content:"json"}.vp-doc [class~=language-jsx]:before{content:"jsx"}.vp-doc [class~=language-less]:before{content:"less"}.vp-doc [class~=language-markdown]:before{content:"md"}.vp-doc [class~=language-md]:before{content:"md"}.vp-doc [class~=language-php]:before{content:"php"}.vp-doc [class~=language-python]:before{content:"py"}.vp-doc [class~=language-py]:before{content:"py"}.vp-doc [class~=language-rb]:before{content:"rb"}.vp-doc [class~=language-ruby]:before{content:"rb"}.vp-doc [class~=language-rust]:before{content:"rust"}.vp-doc [class~=language-sass]:before{content:"sass"}.vp-doc [class~=language-scss]:before{content:"scss"}.vp-doc [class~=language-sh]:before{content:"sh"}.vp-doc [class~=language-bash]:before{content:"sh"}.vp-doc [class~=language-stylus]:before{content:"styl"}.vp-doc [class~=language-vue-html]:before{content:"template"}.vp-doc [class~=language-typescript]:before{content:"ts"}.vp-doc [class~=language-ts]:before{content:"ts"}.vp-doc [class~=language-tsx]:before{content:"tsx"}.vp-doc [class~=language-vue]:before{content:"vue"}.vp-doc [class~=language-yaml]:before{content:"yaml"}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-mute)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white-soft)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-black-mute)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPSkipLink[data-v-9b282d04]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-9b282d04]:focus{height:auto;width:auto;clip:auto;clip-path:none}.dark .VPSkipLink[data-v-9b282d04]{color:var(--vp-c-green)}@media (min-width: 1280px){.VPSkipLink[data-v-9b282d04]{top:14px;left:16px}}.VPBackdrop[data-v-fa1356a4]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:rgba(0,0,0,.6);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-fa1356a4],.VPBackdrop.fade-leave-to[data-v-fa1356a4]{opacity:0}.VPBackdrop.fade-leave-active[data-v-fa1356a4]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-fa1356a4]{display:none}}html:not(.dark) .VPImage.dark[data-v-272398cc]{display:none}.dark .VPImage.light[data-v-272398cc]{display:none}.VPNavBarTitle[data-v-16b01397]{flex-shrink:0;border-bottom:1px solid transparent}@media (min-width: 960px){.VPNavBarTitle.has-sidebar[data-v-16b01397]{margin-right:32px;width:calc(var(--vp-sidebar-width) - 64px);border-bottom-color:var(--vp-c-divider-light);background-color:var(--vp-c-bg-alt)}}.title[data-v-16b01397]{display:flex;align-items:center;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}.title[data-v-16b01397]:hover{opacity:.6}@media (min-width: 960px){.title[data-v-16b01397]{flex-shrink:0}}[data-v-16b01397] .logo{margin-right:8px;height:24px}/*! @docsearch/css 3.5.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"\bb "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.DocSearch{--docsearch-primary-color: var(--vp-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-bg-mute);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:32px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-bg-mute)}.icon[data-v-3ce12125]{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;fill:var(--vp-c-text-3);transition:fill .25s}.VPNavBarMenuLink[data-v-c8f9e84c]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height-mobile);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-c8f9e84c],.VPNavBarMenuLink[data-v-c8f9e84c]:hover{color:var(--vp-c-brand)}@media (min-width: 1280px){.VPNavBarMenuLink[data-v-c8f9e84c]{line-height:var(--vp-nav-height-desktop)}}.VPMenuGroup+.VPMenuLink[data-v-c043d4a4]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider-light);padding:12px 12px 0}.link[data-v-c043d4a4]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-c043d4a4]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-mute)}.dark .link[data-v-c043d4a4]:hover{background-color:var(--vp-c-bg-soft)}.link.active[data-v-c043d4a4]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-3e0ddc3b]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider-light);padding:12px 12px 0}.VPMenuGroup[data-v-3e0ddc3b]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-3e0ddc3b]{margin-top:12px;border-top:1px solid var(--vp-c-divider-light)}.title[data-v-3e0ddc3b]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);transition:color .25s}.VPMenu[data-v-737584dd]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider-light);background-color:var(--vp-c-bg);box-shadow:var(--vp-shadow-3);transition:background-color .5s}.dark .VPMenu[data-v-737584dd]{box-shadow:var(--vp-shadow-2)}.VPMenu[data-v-737584dd] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-737584dd] .group+.group{border-top:1px solid var(--vp-c-divider-light);padding:11px 12px 12px}.VPMenu[data-v-737584dd] .group:last-child{padding-bottom:0}.VPMenu[data-v-737584dd] .group+.item{border-top:1px solid var(--vp-c-divider-light);padding:11px 16px 0}.VPMenu[data-v-737584dd] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-737584dd] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-737584dd] .action{padding-left:24px}.VPFlyout[data-v-2955bc4e]{position:relative}.VPFlyout[data-v-2955bc4e]:hover{color:var(--vp-c-bland);transition:color .25s}.VPFlyout:hover .text[data-v-2955bc4e]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-2955bc4e]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-2955bc4e]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-2955bc4e]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-2955bc4e],.button[aria-expanded=true]+.menu[data-v-2955bc4e]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-2955bc4e]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height-mobile);color:var(--vp-c-text-1);transition:color .5s}@media (min-width: 960px){.button[data-v-2955bc4e]{height:var(--vp-nav-height-desktop)}}.text[data-v-2955bc4e]{display:flex;align-items:center;line-height:var(--vp-nav-height-mobile);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 960px){.text[data-v-2955bc4e]{line-height:var(--vp-nav-height-desktop)}}.option-icon[data-v-2955bc4e]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-2955bc4e]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-2955bc4e]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-2955bc4e]{position:absolute;top:calc(var(--vp-nav-height-mobile) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}@media (min-width: 960px){.menu[data-v-2955bc4e]{top:calc(var(--vp-nav-height-desktop) / 2 + 20px)}}.VPNavBarMenu[data-v-ac6dbdca]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-ac6dbdca]{display:flex}}.VPNavBarTranslations[data-v-2048abb0]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-2048abb0]{display:flex;align-items:center}}.title[data-v-2048abb0]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPSwitch[data-v-fba448a4]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-mute);transition:border-color .25s,background-color .25s}.VPSwitch[data-v-fba448a4]:hover{border-color:var(--vp-c-gray)}.check[data-v-fba448a4]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-white);box-shadow:var(--vp-shadow-1);transition:background-color .25s,transform .25s}.dark .check[data-v-fba448a4]{background-color:var(--vp-c-black)}.icon[data-v-fba448a4]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-fba448a4] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-fba448a4] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-25f4ea49]{opacity:1}.moon[data-v-25f4ea49],.dark .sun[data-v-25f4ea49]{opacity:0}.dark .moon[data-v-25f4ea49]{opacity:1}.dark .VPSwitchAppearance[data-v-25f4ea49] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-11ef8319]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-11ef8319]{display:flex;align-items:center}}.VPSocialLink[data-v-584316a4]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-584316a4]:hover{color:var(--vp-c-text-1);transition:color .25s}.icon[data-v-584316a4]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-440f81de]{display:flex;flex-wrap:wrap;justify-content:center}.VPNavBarSocialLinks[data-v-e67590ee]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-e67590ee]{display:flex;align-items:center}}.VPNavBarExtra[data-v-372c5f6e]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-372c5f6e]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-372c5f6e]{display:none}}.trans-title[data-v-372c5f6e]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-372c5f6e],.item.social-links[data-v-372c5f6e]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-372c5f6e]{min-width:176px}.appearance-action[data-v-372c5f6e]{margin-right:-2px}.social-links-list[data-v-372c5f6e]{margin:-4px -8px}.VPNavBarHamburger[data-v-5b9ddfe7]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-5b9ddfe7]{display:none}}.container[data-v-5b9ddfe7]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-5b9ddfe7]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-5b9ddfe7]{top:6;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-5b9ddfe7]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-5b9ddfe7]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-5b9ddfe7]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-5b9ddfe7]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-5b9ddfe7],.VPNavBarHamburger.active:hover .middle[data-v-5b9ddfe7],.VPNavBarHamburger.active:hover .bottom[data-v-5b9ddfe7]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-5b9ddfe7],.middle[data-v-5b9ddfe7],.bottom[data-v-5b9ddfe7]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-5b9ddfe7]{top:0;left:0;transform:translate(0)}.middle[data-v-5b9ddfe7]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-5b9ddfe7]{top:12px;left:0;transform:translate(4px)}.VPNavBar[data-v-ad22f236]{position:relative;border-bottom:1px solid var(--vp-c-divider-light);padding:0 8px 0 24px;height:var(--vp-nav-height-mobile);transition:border-color .5s,background-color .5s}@media (min-width: 768px){.VPNavBar[data-v-ad22f236]{padding:0 32px}}@media (min-width: 960px){.VPNavBar[data-v-ad22f236]{height:var(--vp-nav-height-desktop);border-bottom:0}.VPNavBar.has-sidebar .content[data-v-ad22f236]{margin-right:-32px;padding-right:32px;-webkit-backdrop-filter:saturate(50%) blur(8px);backdrop-filter:saturate(50%) blur(8px);background:rgba(255,255,255,.7)}.dark .VPNavBar.has-sidebar .content[data-v-ad22f236]{background:rgba(36,36,36,.7)}@supports not (backdrop-filter: saturate(50%) blur(8px)){.VPNavBar.has-sidebar .content[data-v-ad22f236]{background:rgba(255,255,255,.95)}.dark .VPNavBar.has-sidebar .content[data-v-ad22f236]{background:rgba(36,36,36,.95)}}}.container[data-v-ad22f236]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px)}.content[data-v-ad22f236]{display:flex;justify-content:flex-end;align-items:center;flex-grow:1}.menu+.translations[data-v-ad22f236]:before,.menu+.appearance[data-v-ad22f236]:before,.menu+.social-links[data-v-ad22f236]:before,.translations+.appearance[data-v-ad22f236]:before,.appearance+.social-links[data-v-ad22f236]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider-light);content:""}.menu+.appearance[data-v-ad22f236]:before,.translations+.appearance[data-v-ad22f236]:before{margin-right:16px}.appearance+.social-links[data-v-ad22f236]:before{margin-left:16px}.social-links[data-v-ad22f236]{margin-right:-8px}.VPNavScreenMenuLink[data-v-04e2d02e]{display:block;border-bottom:1px solid var(--vp-c-divider-light);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .5s,color .25s}.VPNavScreenMenuLink[data-v-04e2d02e]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-4cb3995a]{display:block;line-height:32px;font-size:13px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s;margin-left:12px}.VPNavScreenMenuGroupLink[data-v-4cb3995a]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-f1878fce]{display:block}.title[data-v-f1878fce]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-85281676]{border-bottom:1px solid var(--vp-c-divider-light);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-85281676]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-85281676]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-85281676]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-85281676]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-85281676]{transform:rotate(45deg)}.button[data-v-85281676]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-85281676]:hover{color:var(--vp-c-brand)}.button-icon[data-v-85281676]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-85281676]:first-child{padding-top:0}.group+.group[data-v-85281676],.group+.item[data-v-85281676]{padding-top:4px}.VPNavScreenAppearance[data-v-1e55636e]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft);transition:background-color .5s}.text[data-v-1e55636e]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPNavScreenTranslations[data-v-32e65acf]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-32e65acf]{height:auto}.title[data-v-32e65acf]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-32e65acf]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-32e65acf]{margin-right:8px}.icon.chevron[data-v-32e65acf]{margin-left:4px}.list[data-v-32e65acf]{padding:4px 0 0 24px}.link[data-v-32e65acf]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.link.active[data-v-32e65acf]{color:var(--vp-c-brand)}.VPNavScreen[data-v-0885b30d]{position:fixed;top:var(--vp-nav-height-mobile);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-c-bg);overflow-y:auto;transition:background-color .5s}.VPNavScreen.fade-enter-active[data-v-0885b30d],.VPNavScreen.fade-leave-active[data-v-0885b30d]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-0885b30d],.VPNavScreen.fade-leave-active .container[data-v-0885b30d]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-0885b30d],.VPNavScreen.fade-leave-to[data-v-0885b30d]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-0885b30d],.VPNavScreen.fade-leave-to .container[data-v-0885b30d]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-0885b30d]{display:none}}.container[data-v-0885b30d]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-0885b30d],.menu+.appearance[data-v-0885b30d],.translations+.appearance[data-v-0885b30d]{margin-top:24px}.menu+.social-links[data-v-0885b30d]{margin-top:16px}.appearance+.social-links[data-v-0885b30d]{margin-top:16px}.VPNav[data-v-3b53327a]{position:relative;top:0;left:0;z-index:var(--vp-z-index-nav);width:100%}@media (min-width: 960px){.VPNav[data-v-3b53327a]{position:fixed}.VPNav.no-sidebar[data-v-3b53327a]{-webkit-backdrop-filter:saturate(50%) blur(8px);backdrop-filter:saturate(50%) blur(8px);background:rgba(255,255,255,.7)}.dark .VPNav.no-sidebar[data-v-3b53327a]{background:rgba(36,36,36,.7)}@supports not (backdrop-filter: saturate(50%) blur(8px)){.VPNav.no-sidebar[data-v-3b53327a]{background:rgba(255,255,255,.95)}.dark .VPNav.no-sidebar[data-v-3b53327a]{background:rgba(36,36,36,.95)}}}.VPLocalNav[data-v-35938b89]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--vp-c-divider-light);width:100%;background-color:var(--vp-c-bg);transition:border-color .5s,background-color .5s}@media (min-width: 960px){.VPLocalNav[data-v-35938b89]{display:none}}.menu[data-v-35938b89]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-35938b89]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-35938b89]{padding:0 32px}}.menu-icon[data-v-35938b89]{margin-right:8px;width:16px;height:16px;fill:currentColor}.top-link[data-v-35938b89]{display:block;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.top-link[data-v-35938b89]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.top-link[data-v-35938b89]{padding:12px 32px 11px}}.link[data-v-400df434]{display:block;color:var(--vp-c-text-2);transition:color .5s;padding:4px 0 4px 6px}.link[data-v-400df434]:hover{color:var(--vp-c-text-1)}.link.active[data-v-400df434]{color:var(--vp-c-brand);padding-left:6px;border-radius:6px;background-color:var(--vp-c-bg-mute)}.link[data-v-400df434] .icon{width:12px;height:12px;fill:currentColor}.link-text[data-v-400df434]{line-height:20px;font-size:14px;font-weight:500}.title[data-v-482902ca]{display:flex;justify-content:space-between;align-items:flex-start;z-index:2}.title-text[data-v-482902ca]{padding-top:6px;padding-bottom:6px;line-height:20px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.action[data-v-482902ca]{display:none;position:relative;margin-right:-8px;border-radius:4px;width:32px;height:32px;color:var(--vp-c-text-3);transition:color .25s}.VPSidebarGroup.collapsible .action[data-v-482902ca]{display:block}.title:hover .action[data-v-482902ca]{color:var(--vp-c-text-2)}.icon[data-v-482902ca]{position:absolute;top:8px;left:8px;width:16px;height:16px;fill:currentColor}.icon.minus[data-v-482902ca]{opacity:1}.icon.plus[data-v-482902ca],.VPSidebarGroup.collapsed .icon.minus[data-v-482902ca]{opacity:0}.VPSidebarGroup.collapsed .icon.plus[data-v-482902ca]{opacity:1}.items[data-v-482902ca]{overflow:hidden}.VPSidebarGroup.collapsed .items[data-v-482902ca]{margin-bottom:-22px;max-height:0}@media (min-width: 960px){.VPSidebarGroup.collapsed .items[data-v-482902ca]{margin-bottom:-14px}}.VPSidebar[data-v-7da2f4ee]{position:fixed;top:0;bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-c-bg);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease}.VPSidebar.open[data-v-7da2f4ee]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-7da2f4ee]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-7da2f4ee]{z-index:1;padding-top:var(--vp-nav-height-desktop);padding-bottom:128px;max-width:100%;width:var(--vp-sidebar-width);background-color:var(--vp-c-bg-alt);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-7da2f4ee]{padding-left:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2);width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.nav[data-v-7da2f4ee]{outline:0}.group+.group[data-v-7da2f4ee]{margin-top:32px;border-top:1px solid var(--vp-c-divider-light);padding-top:10px}@media (min-width: 960px){.group[data-v-7da2f4ee]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}.group+.group[data-v-7da2f4ee]{margin-top:24px}}.NotFound[data-v-2be02df1]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-2be02df1]{padding:96px 32px 168px}}.code[data-v-2be02df1]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-2be02df1]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-2be02df1]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-2be02df1]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-2be02df1]{padding-top:20px}.link[data-v-2be02df1]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-2be02df1]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.VPButton[data-v-4c78d6ce]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:500;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-4c78d6ce]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-4c78d6ce]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-4c78d6ce]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-4c78d6ce]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-4c78d6ce]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-4c78d6ce]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-4c78d6ce]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-4c78d6ce]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-4c78d6ce]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-4c78d6ce]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-4c78d6ce]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-4c78d6ce]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}.VPHero[data-v-cada2c46]{margin-top:calc(var(--vp-nav-height) * -1);padding:calc(var(--vp-nav-height) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-cada2c46]{padding:calc(var(--vp-nav-height) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-cada2c46]{padding:calc(var(--vp-nav-height) + 80px) 64px 64px}}.container[data-v-cada2c46]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-cada2c46]{flex-direction:row}}.main[data-v-cada2c46]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-cada2c46]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-cada2c46]{text-align:left}}@media (min-width: 960px){.main[data-v-cada2c46]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-cada2c46]{max-width:592px}}.name[data-v-cada2c46],.text[data-v-cada2c46]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-cada2c46],.VPHero.has-image .text[data-v-cada2c46]{margin:0 auto}.name[data-v-cada2c46]{color:var(--vp-home-hero-name-color)}.clip[data-v-cada2c46]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-cada2c46],.text[data-v-cada2c46]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-cada2c46],.text[data-v-cada2c46]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-cada2c46],.VPHero.has-image .text[data-v-cada2c46]{margin:0}}.tagline[data-v-cada2c46]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-cada2c46]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-cada2c46]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-cada2c46]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-cada2c46]{margin:0}}.actions[data-v-cada2c46]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-cada2c46]{justify-content:center}@media (min-width: 640px){.actions[data-v-cada2c46]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-cada2c46]{justify-content:flex-start}}.action[data-v-cada2c46]{flex-shrink:0;padding:6px}.image[data-v-cada2c46]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-cada2c46]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-cada2c46]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-cada2c46]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-cada2c46]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-cada2c46]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-cada2c46]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-cada2c46]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-cada2c46]{width:320px;height:320px}}[data-v-cada2c46] .image-src{position:absolute;top:50%;left:50%;max-width:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-cada2c46] .image-src{max-width:256px}}@media (min-width: 960px){[data-v-cada2c46] .image-src{max-width:320px}}.VPFeature[data-v-448d9f9c]{border:1px solid var(--vp-c-bg-soft);border-radius:12px;padding:24px;height:100%;background-color:var(--vp-c-bg-soft)}.icon[data-v-448d9f9c]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-gray-light-4);width:48px;height:48px;font-size:24px}.dark .icon[data-v-448d9f9c]{background-color:var(--vp-c-bg)}.title[data-v-448d9f9c]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-448d9f9c]{padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPFeatures[data-v-204f2f23]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-204f2f23]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-204f2f23]{padding:0 64px}}.container[data-v-204f2f23]{margin:0 auto;max-width:1152px}.items[data-v-204f2f23]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-204f2f23]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-204f2f23],.item.grid-4[data-v-204f2f23],.item.grid-6[data-v-204f2f23]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-204f2f23],.item.grid-4[data-v-204f2f23]{width:50%}.item.grid-3[data-v-204f2f23],.item.grid-6[data-v-204f2f23]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-204f2f23]{width:25%}}.VPHome[data-v-04dc4a3c]{padding-bottom:96px}.VPHome[data-v-04dc4a3c] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-04dc4a3c]{padding-bottom:128px}}.VPDocAsideOutline[data-v-2a6eab60]{display:none}.VPDocAsideOutline.has-outline[data-v-2a6eab60]{display:block}.content[data-v-2a6eab60]{position:relative;border-left:1px solid var(--vp-c-divider-light);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-2a6eab60]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-2a6eab60]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.outline-link[data-v-2a6eab60]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-2a6eab60]:hover,.outline-link.active[data-v-2a6eab60]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-2a6eab60]{padding-left:13px}.root[data-v-2a6eab60]{position:relative;z-index:1}.VPDocAside[data-v-22887a42]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-22887a42]{flex-grow:1}.VPDocAside[data-v-22887a42] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-22887a42] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-22887a42] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-0c5a3df2]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-0c5a3df2]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-87fb46e8]{margin-top:64px}.edit-info[data-v-87fb46e8]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-87fb46e8]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-87fb46e8]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-87fb46e8]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-87fb46e8]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-87fb46e8]{border-top:1px solid var(--vp-c-divider-light);padding-top:24px}@media (min-width: 640px){.prev-next[data-v-87fb46e8]{display:flex}}.pager.has-prev[data-v-87fb46e8]{padding-top:8px}@media (min-width: 640px){.pager[data-v-87fb46e8]{display:flex;flex-direction:column;flex-shrink:0;width:50%}.pager.has-prev[data-v-87fb46e8]{padding-top:0;padding-left:16px}}.pager-link[data-v-87fb46e8]{display:block;border:1px solid var(--vp-c-divider-light);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-87fb46e8]:hover{border-color:var(--vp-c-brand)}.pager-link:hover .title[data-v-87fb46e8]{color:var(--vp-c-brand-dark)}.pager-link.next[data-v-87fb46e8]{margin-left:auto;text-align:right}.desc[data-v-87fb46e8]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-87fb46e8]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDoc[data-v-407838f2]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-407838f2]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-407838f2]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-407838f2]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .aside[data-v-407838f2]{display:block}.VPDoc:not(.has-sidebar) .content[data-v-407838f2]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-407838f2]{display:flex;justify-content:center}.VPDoc .aside[data-v-407838f2]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-407838f2]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-407838f2]{max-width:1104px}}.container[data-v-407838f2]{margin:0 auto;width:100%}.aside[data-v-407838f2]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.aside-container[data-v-407838f2]{position:sticky;top:0;margin-top:calc(var(--vp-nav-height-desktop) * -1 - 32px);padding-top:calc(var(--vp-nav-height-desktop) + 32px);height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-407838f2]::-webkit-scrollbar{display:none}.aside-curtain[data-v-407838f2]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-407838f2]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height-desktop) + 32px));padding-bottom:32px}.content[data-v-407838f2]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-407838f2]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-407838f2]{order:1;margin:0;min-width:640px}}.content-container[data-v-407838f2]{margin:0 auto;max-width:688px}.VPContent[data-v-2f0b66aa]{flex-grow:1;flex-shrink:0;margin:0 auto;width:100%}.VPContent.is-home[data-v-2f0b66aa]{width:100%;max-width:100%}@media (min-width: 960px){.VPContent[data-v-2f0b66aa]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-2f0b66aa]{margin:0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-2f0b66aa]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-3119c160]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-divider-light);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-3119c160]{display:none}@media (min-width: 768px){.VPFooter[data-v-3119c160]{padding:32px}}.container[data-v-3119c160]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-3119c160],.copyright[data-v-3119c160]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.message[data-v-3119c160]{order:2}.copyright[data-v-3119c160]{order:1}.Layout[data-v-e645dc52]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-3212a265]{border-top:1px solid var(--vp-c-divider-light);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-3212a265]{margin:0 auto;max-width:1152px}.love[data-v-3212a265]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-3212a265]{width:28px;height:28px;fill:currentColor}.message[data-v-3212a265]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-3212a265]{padding-top:32px}.action[data-v-3212a265]{padding-top:40px;text-align:center}.VPTeamPage[data-v-50da9578]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-50da9578]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-50da9578-s],.VPTeamMembers+.VPTeamPageSection[data-v-50da9578-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-50da9578-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-50da9578-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-50da9578-s],.VPTeamMembers+.VPTeamPageSection[data-v-50da9578-s]{margin-top:96px}}.VPTeamMembers[data-v-50da9578-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-50da9578-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-50da9578-s]{padding:0 64px}}.VPTeamPageTitle[data-v-2e148f12]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-2e148f12]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-2e148f12]{padding:80px 64px 48px}}.title[data-v-2e148f12]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-2e148f12]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-2e148f12]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-2e148f12]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-40253554]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-40253554]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-40253554]{padding:0 64px}}.title[data-v-40253554]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-40253554]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider-light)}.title-text[data-v-40253554]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-40253554]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-40253554]{padding-top:40px}.VPTeamMembersItem[data-v-cb56d8fe]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-cb56d8fe]{padding:32px}.VPTeamMembersItem.small .data[data-v-cb56d8fe]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-cb56d8fe]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-cb56d8fe]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-cb56d8fe]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-cb56d8fe]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-cb56d8fe]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-cb56d8fe]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-cb56d8fe]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-cb56d8fe]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-cb56d8fe]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-cb56d8fe]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-cb56d8fe]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-cb56d8fe]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-cb56d8fe]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-cb56d8fe]{text-align:center}.avatar[data-v-cb56d8fe]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-cb56d8fe]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-cb56d8fe]{margin:0;font-weight:600}.affiliation[data-v-cb56d8fe]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-cb56d8fe]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-cb56d8fe]:hover{color:var(--vp-c-brand)}.desc[data-v-cb56d8fe]{margin:0 auto}.links[data-v-cb56d8fe]{display:flex;justify-content:center;height:56px}.sponsor-link[data-v-cb56d8fe]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sponsor-link[data-v-cb56d8fe]:hover,.sponsor-link[data-v-cb56d8fe]:focus{outline:none;color:var(--vp-c-text-dark-1);background-color:var(--vp-c-sponsor)}.sponsor-icon[data-v-cb56d8fe]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-208bab12]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-208bab12]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-208bab12]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-208bab12]{max-width:876px}.VPTeamMembers.medium .container[data-v-208bab12]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-208bab12]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-208bab12]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-208bab12]{max-width:760px}.container[data-v-208bab12]{display:grid;gap:24px;margin:0 auto;max-width:1152px}.vhp-button[data-v-437c773e]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg);padding-left:6px;padding-right:6px;border-radius:5px;min-width:60px;height:36px;font-weight:500;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s,box-shadow .4s,opacity .4s;cursor:pointer;transform:scale(1)}.vhp-button[data-v-437c773e]:hover{border-color:var(--vp-button-brand-hover-border);background-color:var(--vp-button-brand-hover-bg)}.vhp-button[data-v-437c773e]:after{position:absolute;content:"";inset:0;border-radius:inherit;opacity:0;box-shadow:0 0 0 6px var(--vp-c-brand);transition:.4s}.vhp-button[data-v-437c773e]:active:after{box-shadow:none;opacity:1;transition:0s}.vitepress-demo{--demo-border-color: #ebedf1}.dark .vitepress-demo{--demo-border-color: #6b6c6d}.vitepress-demo{border:1px solid var(--demo-border-color);border-radius:1px;margin-bottom:24px;color:var(--vp-c-text-1);background-color:var(--vp-c-bg)}.vitepress-demo div[class*=language-]{border-radius:0;margin:0!important;line-height:1.5!important}.vitepress-demo [class*=language-] pre{padding:0}.vitepress-demo [class*=language-] code{padding:1em}.vitepress-demo .demo-slot{padding:40px 24px}.vitepress-demo .demo-actions{display:flex;height:40px;padding:0 8px;align-items:center;justify-content:space-between;border-top:1px dashed var(--demo-border-color)}.vitepress-demo .demo-buttons{display:flex;align-items:center}.vitepress-demo .demo-actions-expand,.vitepress-demo .demo-actions-copy{margin:0 0 0 16px;cursor:pointer;color:#666}.vitepress-demo .demo-actions-tip{font-size:12px;color:#3eaf7c}.vitepress-demo .extra-class{border-top:1px dashed var(--demo-border-color);box-sizing:border-box}.vitepress-demo .demo-platforms{display:flex;align-items:center}.vitepress-demo .demo-title-desc{border-top:1px dashed var(--demo-border-color);padding:1.2em 1em 1em;color:var(--vp-c-text-1);position:relative;font-size:14px}.vitepress-demo .demo-title{position:absolute;top:0;left:1em;transform:translateY(-50%);background:var(--vp-c-bg);font-weight:500}:root{--vp-c-bg: #fff;--vp-c-bg-alt: #fff;--vp-c-black-mute: #171c22;--vp-code-block-bg: #f9fafb;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-text-dark-3);--vp-code-copy-code-hover-bg: rgba(255, 255, 255, .05);--vp-code-copy-code-active-text: var(--vp-c-bg-alt);--vp-home-hero-name-color: #42d392;--vp-home-hero-name-background: -webkit-linear-gradient(315deg, #42d392 25%, #647eff);--vp-font-color: #294156;--vhp-func-bg: rgba(0, 0, 0, .03);--vhp-getstart-bg: linear-gradient(286deg, rgba(59, 206, 128, .7) 26%, rgba(100, 126, 255, .7) 76%);--vhp-demo-shadow-color: rgba(0, 0, 0, .3)}.VPHome{padding-bottom:0!important}@media (min-width: 768px){.VPHome{padding-bottom:0!important}}#docsearch button{background-color:var(--vp-c-white-mute)}input{opacity:1;background-color:var(--vhp-func-bg);padding-left:8px;height:36px;font-weight:500;border-radius:5px;font-size:15px;transition:all .3s}input:focus{color:var(--vp-button-brand-bg)}.VPNav{background-color:var(--vp-c-bg-light)!important}.vitepress-demo{border-radius:12px;overflow:hidden;margin-top:8px;box-shadow:0 2px 4px var(--vhp-demo-shadow-color);border:1px solid var(--vp-code-line-number-color)}.dark{--vp-c-bg: #010e19;--vp-c-bg-alt: rgba(11, 14, 25, .8);--vp-code-block-bg: var(--vp-c-black-mute);--vp-font-color: #b6cae6;--vhp-func-bg: rgba(255, 255, 255, .08);--vhp-getstart-bg: linear-gradient(286deg, rgba(100, 126, 255, .7) 26%, rgba(59, 206, 128, .7) 76%);--vhp-demo-shadow-color: rgba(188, 189, 190, .3)}.dark .VPNavBar.has-sidebar .content,.dark .VPNavBarTitle.has-sidebar{background-color:#0a0e19!important}.dark .VPNav{background-color:var(--vp-c-bg)!important}.dark #docsearch button{background-color:var(--vp-c-black-mute)}.vp-doc [class*=language-]:before{color:var(--vp-c-text-2)}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:4px;margin:16px 0}}@media (max-width: 639px){.vp-doc div[class*=language-]{border-radius:4px}}@media (max-width: 767px){.VPNavBar{border-bottom:0!important}.dark #docsearch button,#docsearch button{background-color:transparent}}@media (min-width: 640px){.name,.text{font-size:28px!important}}@media (min-width: 960px){.name,.text{font-size:32px!important}.VPNavBarTitle.has-sidebar{border-bottom:0}}.home[data-v-6260c8ca]{height:100%;padding-top:24px;background-size:contain}.dark .home[data-v-6260c8ca]{padding-top:24px;background:url(/docs/hooks/dark.jpg) no-repeat;background-size:contain}.demo-name[data-v-6260c8ca]{opacity:.5;text-align:center}section[data-v-6260c8ca]{padding:0 42px 32px;background:url(/docs/hooks/grid.svg)}#hero[data-v-6260c8ca]{padding:0 32px 32px;text-align:center;position:relative}#team[data-v-6260c8ca]{padding:64px 232px}.head[data-v-6260c8ca]{width:1000px;display:flex;justify-content:center}.tagline[data-v-6260c8ca]{font-size:66px;line-height:1.25;font-weight:900;letter-spacing:-1.5px;max-width:960px;margin:0 auto}.accent[data-v-6260c8ca]{font-size:76px}html:not(.dark) .accent[data-v-6260c8ca],.dark .tagline[data-v-6260c8ca]{background:-webkit-linear-gradient(315deg,#42d392 25%,#647eff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.description[data-v-6260c8ca]{max-width:960px;line-height:1.5;transition:color .5s;font-size:22px;margin:24px auto 40px;zoom:.6}.actions a[data-v-6260c8ca]{font-size:16px;display:inline-block;background:var(--vhp-getstart-bg);border-radius:12px;padding:8px 18px;font-weight:500;transition:background-color .5s,color .5s}.actions .get-started[data-v-6260c8ca]{font-size:16px}.actions .icon[data-v-6260c8ca]{display:inline;position:relative;top:-1px;margin-left:2px;fill:currentColor;transition:transform .2s}.actions .get-started[data-v-6260c8ca]:hover{transition-duration:.2s}.actions .get-started:hover .icon[data-v-6260c8ca]{transform:translate(2px)}.actions .get-started[data-v-6260c8ca],.actions .setup[data-v-6260c8ca]{color:var(--vt-c-indigo-light)}.actions .get-started[data-v-6260c8ca]:hover,.actions .setup[data-v-6260c8ca]:hover,.dark .actions .get-started[data-v-6260c8ca]:hover,.dark .actions .setup[data-v-6260c8ca]:hover{background:var(--vhp-getstart-bg)}#special-sponsor[data-v-6260c8ca]{border-top:1px solid var(--vt-c-divider-light);border-bottom:1px solid var(--vt-c-divider-light);padding:12px 24px;text-align:center}#special-sponsor span[data-v-6260c8ca]{color:var(--vt-c-text-2);font-weight:500;font-size:13px;vertical-align:middle;margin-right:24px}#special-sponsor img[data-v-6260c8ca]{display:inline-block;vertical-align:middle;height:36px;margin-right:24px}.dark #special-sponsor img[data-v-6260c8ca]{filter:grayscale(1) invert(1)}#highlights[data-v-6260c8ca]{max-width:960px;margin:0 auto;color:var(--vt-c-text-2)}#team[data-v-6260c8ca]{color:var(--vt-c-text-2)}#highlights h2[data-v-6260c8ca]{font-weight:600;font-size:20px;letter-spacing:-.4px;color:var(--vt-c-text-1);transition:color .5s;margin-bottom:.75em}#highlights p[data-v-6260c8ca]{font-weight:400;font-size:15px}#highlights .vt-box[data-v-6260c8ca]{background-color:var(--vhp-func-bg);margin-top:16px}#sponsors[data-v-6260c8ca]{max-width:900px;margin:0 auto}#sponsors h2[data-v-6260c8ca]{font-size:20px;font-weight:600;margin-bottom:1em}#sponsors .sponsor-container[data-v-6260c8ca]{margin-bottom:3em}@media (max-width: 960px){.tagline[data-v-6260c8ca]{font-size:64px;letter-spacing:-.5px}.accent[data-v-6260c8ca]{font-size:74px}.description[data-v-6260c8ca]{font-size:18px;margin-bottom:48px}}@media (max-width: 768px){.tagline[data-v-6260c8ca]{font-size:36px;letter-spacing:-.5px}.accent[data-v-6260c8ca]{font-size:48px}}@media (max-width: 576px){#hero[data-v-6260c8ca]{padding:8px 64px 32px}.description[data-v-6260c8ca]{font-size:16px;margin:18px 0 30px}#special-sponsor img[data-v-6260c8ca]{display:block;margin:2px auto 1px}#highlights h3[data-v-6260c8ca]{margin-bottom:.6em}#highlights .vt-box[data-v-6260c8ca]{padding:20px 36px;margin-top:0}#highlights .vt-box[data-v-6260c8ca]:first-child{margin-top:8px}.actions a[data-v-6260c8ca]{margin:.5em 0}}@media (max-width: 370px){.tagline[data-v-6260c8ca]{font-size:26px}.accent[data-v-6260c8ca]{font-size:36px}}@media (max-width: 768px){.vt-box-container[data-v-6260c8ca]{display:flex;flex-wrap:wrap;justify-content:space-between}.vt-box-container .vt-box[data-v-6260c8ca]{background-color:var(--vt-c-bg-soft);transition:color .5s,background-color .5s;padding:28px 36px;border-radius:8px;flex:0 100%;margin-bottom:20px;font-size:14px;font-weight:500}}@media (min-width: 769px){.vt-box-container[data-v-6260c8ca]{display:flex;flex-wrap:wrap;justify-content:space-between}.vt-box-container .vt-box[data-v-6260c8ca]{background-color:var(--vt-c-bg-soft);transition:color .5s,background-color .5s;padding:28px;border-radius:8px;flex:0 32%;font-size:14px;font-weight:500}}h2{text-align:center;font-weight:600;color:var(--vp-font-color);padding-bottom:1rem}#demo-editor{display:flex;justify-content:center;overflow:hidden}.import-code{color:#e647a4}.export-code{color:#46a6f0}.module-code{color:#fabe3b}.variable-code{color:#38cd46}.label-code{color:#f03c45}.terminal{line-height:16px;min-height:480px;margin:25px 12px 32px;padding:30px 30px 30px 10px;border-radius:7px;position:relative;box-shadow:0 0 0 1px #0000000d,0 0 30px 1px #00000026;width:888px;max-width:888px}.terminal:after{content:"";position:absolute;top:12px;left:10px;width:12px;height:12px;background:#f95c5b;border-radius:100%;box-shadow:0 0 0 1px #da3d42,22px 0 #fabe3b,22px 0 0 1px #ecb03e,44px 0 #38cd46,44px 0 0 1px #2eae32}@media (max-width: 768px){.terminal{font-size:12px;margin:12px}}@media (max-width: 370px){.terminal{font-size:12px;margin:12px}}.container[data-v-d4923066]{display:flex;flex-direction:column;align-items:center}.avatar[data-v-d4923066]{min-height:4.75rem;min-width:4.75rem;border-radius:4.75rem}.name[data-v-d4923066]{cursor:pointer}.name[data-v-d4923066],.description[data-v-d4923066]{margin-top:16px;zoom:.85;height:60px}.description[data-v-d4923066]{color:var(--vp-font-color)}.code[data-v-d4923066]{background-color:var(--vp-code-block-bg);display:flex;align-items:center;padding:12px;border-radius:5px;margin-top:12px}.code-container[data-v-d4923066]{display:flex;flex-direction:column;padding-left:8px}.icon[data-v-d4923066]{width:1.2rem;height:1.2rem}.container[data-v-345e01e7]{display:flex}h2[data-v-345e01e7]{text-align:center;font-weight:600;color:var(--vp-font-color);padding-bottom:1rem}.main[data-v-345e01e7]{text-align:center;background-color:var(--vp-c-bg)}.grid[data-v-345e01e7]{display:grid;grid-row-gap:.45rem;grid-column-gap:3rem;grid-template-columns:repeat(4,1fr);padding-left:184px;padding-right:184px}.grid div[data-v-345e01e7]{padding:42px 32px}@media (max-width: 1450px){.grid[data-v-345e01e7]{display:grid;grid-row-gap:.45rem;grid-column-gap:3rem;grid-template-columns:repeat(3,1fr);padding-left:124px;padding-right:124px}.grid div[data-v-345e01e7]{padding:42px 32px}}@media (max-width: 1100px){.grid[data-v-345e01e7]{display:grid;grid-row-gap:.45rem;grid-column-gap:3rem;grid-template-columns:repeat(2,1fr);padding-left:64px;padding-right:64px}.grid div[data-v-345e01e7]{padding:42px 32px}}@media (max-width: 768px){.grid[data-v-345e01e7]{display:grid;grid-row-gap:24px;grid-column-gap:3rem;grid-template-columns:repeat(1,1fr)}.grid div[data-v-345e01e7]{padding:12px}}@media (max-width: 370px){.tagline[data-v-345e01e7]{font-size:36px}}.container[data-v-23f2a419]{display:flex;flex-direction:column;align-items:center;padding:80px 32px 32px;position:relative;margin:0 auto}.img[data-v-23f2a419]{background-image:linear-gradient(-25deg,#647eff 40%,#42d392 50%);filter:blur(60px);position:absolute;width:260px;height:230px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}img[data-v-23f2a419]{width:260px;height:230px;z-index:1}@media (max-width: 1450px){.img[data-v-23f2a419]{width:216px;height:192px;filter:blur(60px)}img[data-v-23f2a419]{width:216px;height:192px}}@media (max-width: 1100px){.img[data-v-23f2a419]{width:173px;height:154px;filter:blur(60px)}img[data-v-23f2a419]{width:173px;height:154px}}@media (max-width: 768px){.container[data-v-23f2a419]{display:flex;flex-direction:column;align-items:center;padding:32px 16px 16px}.img[data-v-23f2a419]{width:131px;height:115px;filter:blur(40px)}img[data-v-23f2a419]{width:131px;height:115px}}@media (max-width: 370px){.container[data-v-23f2a419]{display:flex;flex-direction:column;align-items:center;padding:8px}.img[data-v-23f2a419]{width:87px;height:77px;filter:blur(30px)}img[data-v-23f2a419]{width:87px;height:77px}}#iviewBg[data-v-cca34280]{width:100%;height:100%;overflow:hidden;position:absolute;top:0;right:0;bottom:0px;left:0;opacity:.85}.resize{min-width:200px;min-height:200px;max-width:500px;max-height:500px}.done{text-decoration:line-through}.resize{min-width:200px;min-height:200px;max-width:500px;max-height:500px}.contain button[data-v-49c81114]{margin-right:8px}.home[data-v-9f787786]{height:100%;padding-top:24px;background-size:contain}.dark .home[data-v-9f787786]{padding-top:24px;background:url(/docs/hooks/dark.jpg) no-repeat;background-size:contain}.demo-name[data-v-9f787786]{opacity:.5;text-align:center}section[data-v-9f787786]{padding:0 42px 32px;background:url(/docs/hooks/grid.svg)}#hero[data-v-9f787786]{padding:0 32px 32px;text-align:center;position:relative}#team[data-v-9f787786]{padding:64px 232px}.head[data-v-9f787786]{width:1000px;display:flex;justify-content:center}.tagline[data-v-9f787786]{font-size:66px;line-height:1.25;font-weight:900;letter-spacing:-1.5px;max-width:960px;margin:0 auto}.accent[data-v-9f787786]{font-size:76px}html:not(.dark) .accent[data-v-9f787786],.dark .tagline[data-v-9f787786]{background:-webkit-linear-gradient(315deg,#42d392 25%,#647eff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.description[data-v-9f787786]{max-width:960px;line-height:1.5;transition:color .5s;font-size:22px;margin:24px auto 40px;zoom:.6}.actions a[data-v-9f787786]{font-size:16px;display:inline-block;background:var(--vhp-getstart-bg);border-radius:12px;padding:8px 18px;font-weight:500;transition:background-color .5s,color .5s}.actions .get-started[data-v-9f787786]{font-size:16px}.actions .icon[data-v-9f787786]{display:inline;position:relative;top:-1px;margin-left:2px;fill:currentColor;transition:transform .2s}.actions .get-started[data-v-9f787786]:hover{transition-duration:.2s}.actions .get-started:hover .icon[data-v-9f787786]{transform:translate(2px)}.actions .get-started[data-v-9f787786],.actions .setup[data-v-9f787786]{color:var(--vt-c-indigo-light)}.actions .get-started[data-v-9f787786]:hover,.actions .setup[data-v-9f787786]:hover,.dark .actions .get-started[data-v-9f787786]:hover,.dark .actions .setup[data-v-9f787786]:hover{background:var(--vhp-getstart-bg)}#special-sponsor[data-v-9f787786]{border-top:1px solid var(--vt-c-divider-light);border-bottom:1px solid var(--vt-c-divider-light);padding:12px 24px;text-align:center}#special-sponsor span[data-v-9f787786]{color:var(--vt-c-text-2);font-weight:500;font-size:13px;vertical-align:middle;margin-right:24px}#special-sponsor img[data-v-9f787786]{display:inline-block;vertical-align:middle;height:36px;margin-right:24px}.dark #special-sponsor img[data-v-9f787786]{filter:grayscale(1) invert(1)}#highlights[data-v-9f787786]{max-width:960px;margin:0 auto;color:var(--vt-c-text-2)}#team[data-v-9f787786]{color:var(--vt-c-text-2)}#highlights h2[data-v-9f787786]{font-weight:600;font-size:20px;letter-spacing:-.4px;color:var(--vt-c-text-1);transition:color .5s;margin-bottom:.75em}#highlights p[data-v-9f787786]{font-weight:400;font-size:15px}#highlights .vt-box[data-v-9f787786]{background-color:var(--vhp-func-bg);margin-top:16px}#sponsors[data-v-9f787786]{max-width:900px;margin:0 auto}#sponsors h2[data-v-9f787786]{font-size:20px;font-weight:600;margin-bottom:1em}#sponsors .sponsor-container[data-v-9f787786]{margin-bottom:3em}@media (max-width: 960px){.tagline[data-v-9f787786]{font-size:64px;letter-spacing:-.5px}.accent[data-v-9f787786]{font-size:74px}.description[data-v-9f787786]{font-size:18px;margin-bottom:48px}}@media (max-width: 768px){.tagline[data-v-9f787786]{font-size:36px;letter-spacing:-.5px}.accent[data-v-9f787786]{font-size:48px}}@media (max-width: 576px){#hero[data-v-9f787786]{padding:8px 64px 32px}.description[data-v-9f787786]{font-size:16px;margin:18px 0 30px}#special-sponsor img[data-v-9f787786]{display:block;margin:2px auto 1px}#highlights h3[data-v-9f787786]{margin-bottom:.6em}#highlights .vt-box[data-v-9f787786]{padding:20px 36px;margin-top:0}#highlights .vt-box[data-v-9f787786]:first-child{margin-top:8px}.actions a[data-v-9f787786]{margin:.5em 0}}@media (max-width: 370px){.tagline[data-v-9f787786]{font-size:26px}.accent[data-v-9f787786]{font-size:36px}}@media (max-width: 768px){.vt-box-container[data-v-9f787786]{display:flex;flex-wrap:wrap;justify-content:space-between}.vt-box-container .vt-box[data-v-9f787786]{background-color:var(--vt-c-bg-soft);transition:color .5s,background-color .5s;padding:28px 36px;border-radius:8px;flex:0 100%;margin-bottom:20px;font-size:14px;font-weight:500}}@media (min-width: 769px){.vt-box-container[data-v-9f787786]{display:flex;flex-wrap:wrap;justify-content:space-between}.vt-box-container .vt-box[data-v-9f787786]{background-color:var(--vt-c-bg-soft);transition:color .5s,background-color .5s;padding:28px;border-radius:8px;flex:0 32%;font-size:14px;font-weight:500}}.VPCarbonAds{display:flex;justify-content:center;align-items:center;padding:24px;border-radius:12px;min-height:240px;text-align:center;line-height:18px;font-size:12px;font-weight:500;background-color:var(--vp-c-bg-soft);transition:color .5s,background-color .5s}.VPCarbonAds img{margin:0 auto;border-radius:6px}.VPCarbonAds .carbon-text{display:block;margin:0 auto;padding-top:12px;color:var(--vp-c-text-1);transition:color .25s}.VPCarbonAds .carbon-text:hover{color:var(--vp-c-brand)}.VPCarbonAds .carbon-poweredby{display:block;padding-top:6px;font-size:11px;font-weight:500;color:var(--vp-c-text-2);text-transform:uppercase;transition:color .25s}.VPCarbonAds .carbon-poweredby:hover{color:var(--vp-c-text-1)} +@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/hooks/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/docs/hooks/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-cyrillic.f8750142.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-cyrillic-ext.0877b0d9.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-greek.117e1956.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-greek-ext.3e6f6728.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-latin.4fe6132f.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-latin-ext.7cc429bc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/docs/hooks/assets/inter-vietnamese.2c644a25.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}:root{--vp-c-white: #ffffff;--vp-c-white-soft: #f9f9f9;--vp-c-white-mute: #f1f1f1;--vp-c-black: #1a1a1a;--vp-c-black-pure: #000000;--vp-c-black-soft: #242424;--vp-c-black-mute: #2f2f2f;--vp-c-gray: #8e8e8e;--vp-c-gray-light-1: #aeaeae;--vp-c-gray-light-2: #c7c7c7;--vp-c-gray-light-3: #d1d1d1;--vp-c-gray-light-4: #e5e5e5;--vp-c-gray-light-5: #f2f2f2;--vp-c-gray-dark-1: #636363;--vp-c-gray-dark-2: #484848;--vp-c-gray-dark-3: #3a3a3a;--vp-c-gray-dark-4: #282828;--vp-c-gray-dark-5: #202020;--vp-c-divider-light-1: rgba(60, 60, 60, .29);--vp-c-divider-light-2: rgba(60, 60, 60, .12);--vp-c-divider-dark-1: rgba(84, 84, 84, .65);--vp-c-divider-dark-2: rgba(84, 84, 84, .48);--vp-c-text-light-1: var(--vp-c-indigo);--vp-c-text-light-2: rgba(60, 60, 60, .7);--vp-c-text-light-3: rgba(60, 60, 60, .33);--vp-c-text-light-4: rgba(60, 60, 60, .18);--vp-c-text-dark-1: rgba(255, 255, 255, .87);--vp-c-text-dark-2: rgba(235, 235, 235, .6);--vp-c-text-dark-3: rgba(235, 235, 235, .38);--vp-c-text-dark-4: rgba(235, 235, 235, .18);--vp-c-indigo: #213547;--vp-c-indigo-soft: #476582;--vp-c-indigo-light: #aac8e4;--vp-c-indigo-lighter: #c9def1;--vp-c-indigo-dark: #1d2f3f;--vp-c-indigo-darker: #14212e;--vp-c-green: #42b883;--vp-c-green-light: #42d392;--vp-c-green-lighter: #35eb9a;--vp-c-green-dark: #33a06f;--vp-c-green-darker: #155f3e;--vp-c-green-dimm-1: rgba(66, 184, 131, .5);--vp-c-green-dimm-2: rgba(66, 184, 131, .25);--vp-c-green-dimm-3: rgba(66, 184, 131, .05);--vp-c-yellow: #ffc517;--vp-c-yellow-light: #fcd253;--vp-c-yellow-lighter: #fcfc7c;--vp-c-yellow-dark: #e0ad15;--vp-c-yellow-darker: #ad850e;--vp-c-yellow-dimm-1: rgba(255, 197, 23, .5);--vp-c-yellow-dimm-2: rgba(255, 197, 23, .25);--vp-c-yellow-dimm-3: rgba(255, 197, 23, .05);--vp-c-red: #ed3c50;--vp-c-red-light: #f54e82;--vp-c-red-lighter: #fd1d7c;--vp-c-red-dark: #cd2d3f;--vp-c-red-darker: #ab2131;--vp-c-red-dimm-1: rgba(237, 60, 80, .5);--vp-c-red-dimm-2: rgba(237, 60, 80, .25);--vp-c-red-dimm-3: rgba(237, 60, 80, .05)}:root{--vp-c-bg: var(--vp-c-white);--vp-c-bg-soft: var(--vp-c-white-soft);--vp-c-bg-mute: var(--vp-c-white-mute);--vp-c-bg-alt: var(--vp-c-white-soft);--vp-c-divider: var(--vp-c-divider-light-1);--vp-c-divider-light: var(--vp-c-divider-light-2);--vp-c-divider-inverse: var(--vp-c-divider-dark-1);--vp-c-divider-inverse-light: var(--vp-c-divider-dark-2);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-4: var(--vp-c-text-light-4);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-4: var(--vp-c-text-dark-4);--vp-c-text-code: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-green);--vp-c-brand-light: var(--vp-c-green-light);--vp-c-brand-lighter: var(--vp-c-green-lighter);--vp-c-brand-dark: var(--vp-c-green-dark);--vp-c-brand-darker: var(--vp-c-green-darker);--vp-c-sponsor: #fd1d7c}.dark{--vp-c-bg: var(--vp-c-black-soft);--vp-c-bg-soft: var(--vp-c-black-mute);--vp-c-bg-mute: var(--vp-c-gray-dark-3);--vp-c-bg-alt: var(--vp-c-black);--vp-c-divider: var(--vp-c-divider-dark-1);--vp-c-divider-light: var(--vp-c-divider-dark-2);--vp-c-divider-inverse: var(--vp-c-divider-light-1);--vp-c-divider-inverse-light: var(--vp-c-divider-light-2);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-4: var(--vp-c-text-dark-4);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-inverse-4: var(--vp-c-text-light-4);--vp-c-text-code: var(--vp-c-indigo-lighter)}:root{--vp-font-family-base: "Inter var experimental", "Inter var", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--vp-font-family-mono: Menlo, Monaco, Consolas, "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-backdrop: 30;--vp-z-index-sidebar: 40;--vp-z-index-footer: 50}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' class='h-6 w-6' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' class='h-6 w-6' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #292d3e;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-text-dark-3);--vp-code-copy-code-hover-bg: rgba(255, 255, 255, .05);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2)}.dark{--vp-code-block-bg: var(--vp-c-bg-alt)}:root{--vp-button-brand-border: var(--vp-c-brand-light);--vp-button-brand-text: var(--vp-c-text-dark-1);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-light);--vp-button-brand-hover-text: var(--vp-c-text-dark-1);--vp-button-brand-hover-bg: var(--vp-c-brand-light);--vp-button-brand-active-border: var(--vp-c-brand-light);--vp-button-brand-active-text: var(--vp-c-text-dark-1);--vp-button-brand-active-bg: var(--vp-button-brand-bg);--vp-button-alt-border: var(--vp-c-gray-light-3);--vp-button-alt-text: var(--vp-c-text-light-1);--vp-button-alt-bg: var(--vp-c-gray-light-5);--vp-button-alt-hover-border: var(--vp-c-gray-light-3);--vp-button-alt-hover-text: var(--vp-c-text-light-1);--vp-button-alt-hover-bg: var(--vp-c-gray-light-4);--vp-button-alt-active-border: var(--vp-c-gray-light-3);--vp-button-alt-active-text: var(--vp-c-text-light-1);--vp-button-alt-active-bg: var(--vp-c-gray-light-3);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-brand-border: var(--vp-c-brand-light);--vp-button-brand-text: var(--vp-c-text-dark-1);--vp-button-brand-bg: var(--vp-c-brand-dark);--vp-button-brand-hover-border: var(--vp-c-brand-lighter);--vp-button-brand-hover-text: var(--vp-c-text-dark-1);--vp-button-brand-hover-bg: var(--vp-c-brand);--vp-button-brand-active-border: var(--vp-c-brand-lighter);--vp-button-brand-active-text: var(--vp-c-text-dark-1);--vp-button-brand-active-bg: var(--vp-button-brand-bg);--vp-button-alt-border: var(--vp-c-gray-dark-2);--vp-button-alt-text: var(--vp-c-text-dark-1);--vp-button-alt-bg: var(--vp-c-bg-mute);--vp-button-alt-hover-border: var(--vp-c-gray-dark-2);--vp-button-alt-hover-text: var(--vp-c-text-dark-1);--vp-button-alt-hover-bg: var(--vp-c-gray-dark-2);--vp-button-alt-active-border: var(--vp-c-gray-dark-2);--vp-button-alt-active-text: var(--vp-c-text-dark-1);--vp-button-alt-active-bg: var(--vp-button-alt-bg);--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-divider-light);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-white-soft);--vp-custom-block-info-code-bg: var(--vp-c-gray-light-4);--vp-custom-block-tip-border: var(--vp-c-green-dimm-1);--vp-custom-block-tip-text: var(--vp-c-green-darker);--vp-custom-block-tip-bg: var(--vp-c-green-dimm-3);--vp-custom-block-tip-code-bg: var(--vp-custom-block-tip-bg);--vp-custom-block-warning-border: var(--vp-c-yellow-dimm-1);--vp-custom-block-warning-text: var(--vp-c-yellow-darker);--vp-custom-block-warning-bg: var(--vp-c-yellow-dimm-3);--vp-custom-block-warning-code-bg: var(--vp-custom-block-warning-bg);--vp-custom-block-danger-border: var(--vp-c-red-dimm-1);--vp-custom-block-danger-text: var(--vp-c-red-darker);--vp-custom-block-danger-bg: var(--vp-c-red-dimm-3);--vp-custom-block-danger-code-bg: var(--vp-custom-block-danger-bg);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}.dark{--vp-custom-block-info-border: var(--vp-c-divider-light);--vp-custom-block-info-bg: var(--vp-c-black-mute);--vp-custom-block-info-code-bg: var(--vp-c-gray-dark-4);--vp-custom-block-tip-border: var(--vp-c-green-dimm-2);--vp-custom-block-tip-text: var(--vp-c-green-light);--vp-custom-block-warning-border: var(--vp-c-yellow-dimm-2);--vp-custom-block-warning-text: var(--vp-c-yellow-light);--vp-custom-block-danger-border: var(--vp-c-red-dimm-2);--vp-custom-block-danger-text: var(--vp-c-red-light)}:root{--vp-nav-height: var(--vp-nav-height-mobile);--vp-nav-height-mobile: 56px;--vp-nav-height-desktop: 72px}@media (min-width: 960px){:root{--vp-nav-height: var(--vp-nav-height-desktop)}}:root{--vp-sidebar-width: 272px}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button,[role=button]{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:14px;color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:700}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;transition:opacity .25s}.custom-block a:hover{opacity:.6}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider-light);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{float:left;margin-left:-.87em;padding-right:.23em;font-weight:500;opacity:0;transition:color .25s,opacity .25s}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.vp-doc a:hover{color:var(--vp-c-brand-dark)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:12px 16px}.vp-doc th{font-size:16px;font-weight:600;background-color:var(--vp-c-white-soft)}.dark .vp-doc th{background-color:var(--vp-c-black)}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider-light)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600;text-decoration:underline;transition:opacity .25s}.vp-doc .custom-block a:hover{opacity:.6}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:var(--vp-code-block-bg)}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-bg-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand);transition:color .25s}.vp-doc a:hover>code{color:var(--vp-c-brand-dark)}.vp-doc div[class*=language-]{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:16px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc .highlight-lines{position:absolute;top:0;bottom:0;left:0;padding-top:16px;width:100%;line-height:var(--vp-code-line-height);font-family:var(--vp-font-family-mono);font-size:var(--vp-code-font-size);user-select:none;overflow:hidden}.vp-doc .highlight-lines .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc div[class*=language-].line-numbers-mode pre{padding-left:16px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-c-divider-dark-2);padding-top:16px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>span.copy{position:absolute;top:8px;right:8px;z-index:2;display:block;justify-content:center;align-items:center;border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-block-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:opacity .25s}.vp-doc [class*=language-]:hover>span.copy{opacity:1}.vp-doc [class*=language-]>span.copy:hover{background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>span.copy.copied,.vp-doc [class*=language-]>span.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>span.copy.copied:before,.vp-doc [class*=language-]>span.copy:hover.copied:before{position:relative;left:-65px;display:block;border-radius:4px 0 0 4px;padding-top:8px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]:before{position:absolute;top:6px;right:12px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-text-dark-3);transition:color .5s,opacity .5s}.vp-doc [class*=language-]:hover:before{opacity:0}.vp-doc [class~=language-c]:before{content:"c"}.vp-doc [class~=language-css]:before{content:"css"}.vp-doc [class~=language-go]:before{content:"go"}.vp-doc [class~=language-html]:before{content:"html"}.vp-doc [class~=language-java]:before{content:"java"}.vp-doc [class~=language-javascript]:before{content:"js"}.vp-doc [class~=language-js]:before{content:"js"}.vp-doc [class~=language-json]:before{content:"json"}.vp-doc [class~=language-jsx]:before{content:"jsx"}.vp-doc [class~=language-less]:before{content:"less"}.vp-doc [class~=language-markdown]:before{content:"md"}.vp-doc [class~=language-md]:before{content:"md"}.vp-doc [class~=language-php]:before{content:"php"}.vp-doc [class~=language-python]:before{content:"py"}.vp-doc [class~=language-py]:before{content:"py"}.vp-doc [class~=language-rb]:before{content:"rb"}.vp-doc [class~=language-ruby]:before{content:"rb"}.vp-doc [class~=language-rust]:before{content:"rust"}.vp-doc [class~=language-sass]:before{content:"sass"}.vp-doc [class~=language-scss]:before{content:"scss"}.vp-doc [class~=language-sh]:before{content:"sh"}.vp-doc [class~=language-bash]:before{content:"sh"}.vp-doc [class~=language-stylus]:before{content:"styl"}.vp-doc [class~=language-vue-html]:before{content:"template"}.vp-doc [class~=language-typescript]:before{content:"ts"}.vp-doc [class~=language-ts]:before{content:"ts"}.vp-doc [class~=language-tsx]:before{content:"tsx"}.vp-doc [class~=language-vue]:before{content:"vue"}.vp-doc [class~=language-yaml]:before{content:"yaml"}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-mute)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white-soft)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-black-mute)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPSkipLink[data-v-9b282d04]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-9b282d04]:focus{height:auto;width:auto;clip:auto;clip-path:none}.dark .VPSkipLink[data-v-9b282d04]{color:var(--vp-c-green)}@media (min-width: 1280px){.VPSkipLink[data-v-9b282d04]{top:14px;left:16px}}.VPBackdrop[data-v-fa1356a4]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:rgba(0,0,0,.6);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-fa1356a4],.VPBackdrop.fade-leave-to[data-v-fa1356a4]{opacity:0}.VPBackdrop.fade-leave-active[data-v-fa1356a4]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-fa1356a4]{display:none}}html:not(.dark) .VPImage.dark[data-v-272398cc]{display:none}.dark .VPImage.light[data-v-272398cc]{display:none}.VPNavBarTitle[data-v-16b01397]{flex-shrink:0;border-bottom:1px solid transparent}@media (min-width: 960px){.VPNavBarTitle.has-sidebar[data-v-16b01397]{margin-right:32px;width:calc(var(--vp-sidebar-width) - 64px);border-bottom-color:var(--vp-c-divider-light);background-color:var(--vp-c-bg-alt)}}.title[data-v-16b01397]{display:flex;align-items:center;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}.title[data-v-16b01397]:hover{opacity:.6}@media (min-width: 960px){.title[data-v-16b01397]{flex-shrink:0}}[data-v-16b01397] .logo{margin-right:8px;height:24px}/*! @docsearch/css 3.5.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"\bb "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.DocSearch{--docsearch-primary-color: var(--vp-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-bg-mute);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:32px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-bg-mute)}.icon[data-v-3ce12125]{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;fill:var(--vp-c-text-3);transition:fill .25s}.VPNavBarMenuLink[data-v-c8f9e84c]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height-mobile);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-c8f9e84c],.VPNavBarMenuLink[data-v-c8f9e84c]:hover{color:var(--vp-c-brand)}@media (min-width: 1280px){.VPNavBarMenuLink[data-v-c8f9e84c]{line-height:var(--vp-nav-height-desktop)}}.VPMenuGroup+.VPMenuLink[data-v-c043d4a4]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider-light);padding:12px 12px 0}.link[data-v-c043d4a4]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-c043d4a4]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-mute)}.dark .link[data-v-c043d4a4]:hover{background-color:var(--vp-c-bg-soft)}.link.active[data-v-c043d4a4]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-3e0ddc3b]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider-light);padding:12px 12px 0}.VPMenuGroup[data-v-3e0ddc3b]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-3e0ddc3b]{margin-top:12px;border-top:1px solid var(--vp-c-divider-light)}.title[data-v-3e0ddc3b]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);transition:color .25s}.VPMenu[data-v-737584dd]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider-light);background-color:var(--vp-c-bg);box-shadow:var(--vp-shadow-3);transition:background-color .5s}.dark .VPMenu[data-v-737584dd]{box-shadow:var(--vp-shadow-2)}.VPMenu[data-v-737584dd] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-737584dd] .group+.group{border-top:1px solid var(--vp-c-divider-light);padding:11px 12px 12px}.VPMenu[data-v-737584dd] .group:last-child{padding-bottom:0}.VPMenu[data-v-737584dd] .group+.item{border-top:1px solid var(--vp-c-divider-light);padding:11px 16px 0}.VPMenu[data-v-737584dd] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-737584dd] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-737584dd] .action{padding-left:24px}.VPFlyout[data-v-2955bc4e]{position:relative}.VPFlyout[data-v-2955bc4e]:hover{color:var(--vp-c-bland);transition:color .25s}.VPFlyout:hover .text[data-v-2955bc4e]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-2955bc4e]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-2955bc4e]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-2955bc4e]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-2955bc4e],.button[aria-expanded=true]+.menu[data-v-2955bc4e]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-2955bc4e]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height-mobile);color:var(--vp-c-text-1);transition:color .5s}@media (min-width: 960px){.button[data-v-2955bc4e]{height:var(--vp-nav-height-desktop)}}.text[data-v-2955bc4e]{display:flex;align-items:center;line-height:var(--vp-nav-height-mobile);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 960px){.text[data-v-2955bc4e]{line-height:var(--vp-nav-height-desktop)}}.option-icon[data-v-2955bc4e]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-2955bc4e]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-2955bc4e]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-2955bc4e]{position:absolute;top:calc(var(--vp-nav-height-mobile) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}@media (min-width: 960px){.menu[data-v-2955bc4e]{top:calc(var(--vp-nav-height-desktop) / 2 + 20px)}}.VPNavBarMenu[data-v-ac6dbdca]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-ac6dbdca]{display:flex}}.VPNavBarTranslations[data-v-2048abb0]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-2048abb0]{display:flex;align-items:center}}.title[data-v-2048abb0]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPSwitch[data-v-fba448a4]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-mute);transition:border-color .25s,background-color .25s}.VPSwitch[data-v-fba448a4]:hover{border-color:var(--vp-c-gray)}.check[data-v-fba448a4]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-white);box-shadow:var(--vp-shadow-1);transition:background-color .25s,transform .25s}.dark .check[data-v-fba448a4]{background-color:var(--vp-c-black)}.icon[data-v-fba448a4]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-fba448a4] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-fba448a4] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-25f4ea49]{opacity:1}.moon[data-v-25f4ea49],.dark .sun[data-v-25f4ea49]{opacity:0}.dark .moon[data-v-25f4ea49]{opacity:1}.dark .VPSwitchAppearance[data-v-25f4ea49] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-11ef8319]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-11ef8319]{display:flex;align-items:center}}.VPSocialLink[data-v-584316a4]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-584316a4]:hover{color:var(--vp-c-text-1);transition:color .25s}.icon[data-v-584316a4]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-440f81de]{display:flex;flex-wrap:wrap;justify-content:center}.VPNavBarSocialLinks[data-v-e67590ee]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-e67590ee]{display:flex;align-items:center}}.VPNavBarExtra[data-v-372c5f6e]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-372c5f6e]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-372c5f6e]{display:none}}.trans-title[data-v-372c5f6e]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-372c5f6e],.item.social-links[data-v-372c5f6e]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-372c5f6e]{min-width:176px}.appearance-action[data-v-372c5f6e]{margin-right:-2px}.social-links-list[data-v-372c5f6e]{margin:-4px -8px}.VPNavBarHamburger[data-v-5b9ddfe7]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-5b9ddfe7]{display:none}}.container[data-v-5b9ddfe7]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-5b9ddfe7]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-5b9ddfe7]{top:6;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-5b9ddfe7]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-5b9ddfe7]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-5b9ddfe7]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-5b9ddfe7]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-5b9ddfe7],.VPNavBarHamburger.active:hover .middle[data-v-5b9ddfe7],.VPNavBarHamburger.active:hover .bottom[data-v-5b9ddfe7]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-5b9ddfe7],.middle[data-v-5b9ddfe7],.bottom[data-v-5b9ddfe7]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-5b9ddfe7]{top:0;left:0;transform:translate(0)}.middle[data-v-5b9ddfe7]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-5b9ddfe7]{top:12px;left:0;transform:translate(4px)}.VPNavBar[data-v-ad22f236]{position:relative;border-bottom:1px solid var(--vp-c-divider-light);padding:0 8px 0 24px;height:var(--vp-nav-height-mobile);transition:border-color .5s,background-color .5s}@media (min-width: 768px){.VPNavBar[data-v-ad22f236]{padding:0 32px}}@media (min-width: 960px){.VPNavBar[data-v-ad22f236]{height:var(--vp-nav-height-desktop);border-bottom:0}.VPNavBar.has-sidebar .content[data-v-ad22f236]{margin-right:-32px;padding-right:32px;-webkit-backdrop-filter:saturate(50%) blur(8px);backdrop-filter:saturate(50%) blur(8px);background:rgba(255,255,255,.7)}.dark .VPNavBar.has-sidebar .content[data-v-ad22f236]{background:rgba(36,36,36,.7)}@supports not (backdrop-filter: saturate(50%) blur(8px)){.VPNavBar.has-sidebar .content[data-v-ad22f236]{background:rgba(255,255,255,.95)}.dark .VPNavBar.has-sidebar .content[data-v-ad22f236]{background:rgba(36,36,36,.95)}}}.container[data-v-ad22f236]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px)}.content[data-v-ad22f236]{display:flex;justify-content:flex-end;align-items:center;flex-grow:1}.menu+.translations[data-v-ad22f236]:before,.menu+.appearance[data-v-ad22f236]:before,.menu+.social-links[data-v-ad22f236]:before,.translations+.appearance[data-v-ad22f236]:before,.appearance+.social-links[data-v-ad22f236]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider-light);content:""}.menu+.appearance[data-v-ad22f236]:before,.translations+.appearance[data-v-ad22f236]:before{margin-right:16px}.appearance+.social-links[data-v-ad22f236]:before{margin-left:16px}.social-links[data-v-ad22f236]{margin-right:-8px}.VPNavScreenMenuLink[data-v-04e2d02e]{display:block;border-bottom:1px solid var(--vp-c-divider-light);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .5s,color .25s}.VPNavScreenMenuLink[data-v-04e2d02e]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-4cb3995a]{display:block;line-height:32px;font-size:13px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s;margin-left:12px}.VPNavScreenMenuGroupLink[data-v-4cb3995a]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-f1878fce]{display:block}.title[data-v-f1878fce]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-85281676]{border-bottom:1px solid var(--vp-c-divider-light);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-85281676]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-85281676]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-85281676]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-85281676]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-85281676]{transform:rotate(45deg)}.button[data-v-85281676]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-85281676]:hover{color:var(--vp-c-brand)}.button-icon[data-v-85281676]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-85281676]:first-child{padding-top:0}.group+.group[data-v-85281676],.group+.item[data-v-85281676]{padding-top:4px}.VPNavScreenAppearance[data-v-1e55636e]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft);transition:background-color .5s}.text[data-v-1e55636e]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPNavScreenTranslations[data-v-32e65acf]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-32e65acf]{height:auto}.title[data-v-32e65acf]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-32e65acf]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-32e65acf]{margin-right:8px}.icon.chevron[data-v-32e65acf]{margin-left:4px}.list[data-v-32e65acf]{padding:4px 0 0 24px}.link[data-v-32e65acf]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.link.active[data-v-32e65acf]{color:var(--vp-c-brand)}.VPNavScreen[data-v-0885b30d]{position:fixed;top:var(--vp-nav-height-mobile);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-c-bg);overflow-y:auto;transition:background-color .5s}.VPNavScreen.fade-enter-active[data-v-0885b30d],.VPNavScreen.fade-leave-active[data-v-0885b30d]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-0885b30d],.VPNavScreen.fade-leave-active .container[data-v-0885b30d]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-0885b30d],.VPNavScreen.fade-leave-to[data-v-0885b30d]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-0885b30d],.VPNavScreen.fade-leave-to .container[data-v-0885b30d]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-0885b30d]{display:none}}.container[data-v-0885b30d]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-0885b30d],.menu+.appearance[data-v-0885b30d],.translations+.appearance[data-v-0885b30d]{margin-top:24px}.menu+.social-links[data-v-0885b30d]{margin-top:16px}.appearance+.social-links[data-v-0885b30d]{margin-top:16px}.VPNav[data-v-3b53327a]{position:relative;top:0;left:0;z-index:var(--vp-z-index-nav);width:100%}@media (min-width: 960px){.VPNav[data-v-3b53327a]{position:fixed}.VPNav.no-sidebar[data-v-3b53327a]{-webkit-backdrop-filter:saturate(50%) blur(8px);backdrop-filter:saturate(50%) blur(8px);background:rgba(255,255,255,.7)}.dark .VPNav.no-sidebar[data-v-3b53327a]{background:rgba(36,36,36,.7)}@supports not (backdrop-filter: saturate(50%) blur(8px)){.VPNav.no-sidebar[data-v-3b53327a]{background:rgba(255,255,255,.95)}.dark .VPNav.no-sidebar[data-v-3b53327a]{background:rgba(36,36,36,.95)}}}.VPLocalNav[data-v-35938b89]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--vp-c-divider-light);width:100%;background-color:var(--vp-c-bg);transition:border-color .5s,background-color .5s}@media (min-width: 960px){.VPLocalNav[data-v-35938b89]{display:none}}.menu[data-v-35938b89]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-35938b89]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-35938b89]{padding:0 32px}}.menu-icon[data-v-35938b89]{margin-right:8px;width:16px;height:16px;fill:currentColor}.top-link[data-v-35938b89]{display:block;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.top-link[data-v-35938b89]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.top-link[data-v-35938b89]{padding:12px 32px 11px}}.link[data-v-400df434]{display:block;color:var(--vp-c-text-2);transition:color .5s;padding:4px 0 4px 6px}.link[data-v-400df434]:hover{color:var(--vp-c-text-1)}.link.active[data-v-400df434]{color:var(--vp-c-brand);padding-left:6px;border-radius:6px;background-color:var(--vp-c-bg-mute)}.link[data-v-400df434] .icon{width:12px;height:12px;fill:currentColor}.link-text[data-v-400df434]{line-height:20px;font-size:14px;font-weight:500}.title[data-v-482902ca]{display:flex;justify-content:space-between;align-items:flex-start;z-index:2}.title-text[data-v-482902ca]{padding-top:6px;padding-bottom:6px;line-height:20px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.action[data-v-482902ca]{display:none;position:relative;margin-right:-8px;border-radius:4px;width:32px;height:32px;color:var(--vp-c-text-3);transition:color .25s}.VPSidebarGroup.collapsible .action[data-v-482902ca]{display:block}.title:hover .action[data-v-482902ca]{color:var(--vp-c-text-2)}.icon[data-v-482902ca]{position:absolute;top:8px;left:8px;width:16px;height:16px;fill:currentColor}.icon.minus[data-v-482902ca]{opacity:1}.icon.plus[data-v-482902ca],.VPSidebarGroup.collapsed .icon.minus[data-v-482902ca]{opacity:0}.VPSidebarGroup.collapsed .icon.plus[data-v-482902ca]{opacity:1}.items[data-v-482902ca]{overflow:hidden}.VPSidebarGroup.collapsed .items[data-v-482902ca]{margin-bottom:-22px;max-height:0}@media (min-width: 960px){.VPSidebarGroup.collapsed .items[data-v-482902ca]{margin-bottom:-14px}}.VPSidebar[data-v-7da2f4ee]{position:fixed;top:0;bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-c-bg);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease}.VPSidebar.open[data-v-7da2f4ee]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-7da2f4ee]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-7da2f4ee]{z-index:1;padding-top:var(--vp-nav-height-desktop);padding-bottom:128px;max-width:100%;width:var(--vp-sidebar-width);background-color:var(--vp-c-bg-alt);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-7da2f4ee]{padding-left:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2);width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.nav[data-v-7da2f4ee]{outline:0}.group+.group[data-v-7da2f4ee]{margin-top:32px;border-top:1px solid var(--vp-c-divider-light);padding-top:10px}@media (min-width: 960px){.group[data-v-7da2f4ee]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}.group+.group[data-v-7da2f4ee]{margin-top:24px}}.NotFound[data-v-2be02df1]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-2be02df1]{padding:96px 32px 168px}}.code[data-v-2be02df1]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-2be02df1]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-2be02df1]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-2be02df1]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-2be02df1]{padding-top:20px}.link[data-v-2be02df1]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-2be02df1]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.VPButton[data-v-4c78d6ce]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:500;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-4c78d6ce]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-4c78d6ce]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-4c78d6ce]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-4c78d6ce]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-4c78d6ce]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-4c78d6ce]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-4c78d6ce]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-4c78d6ce]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-4c78d6ce]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-4c78d6ce]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-4c78d6ce]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-4c78d6ce]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}.VPHero[data-v-cada2c46]{margin-top:calc(var(--vp-nav-height) * -1);padding:calc(var(--vp-nav-height) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-cada2c46]{padding:calc(var(--vp-nav-height) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-cada2c46]{padding:calc(var(--vp-nav-height) + 80px) 64px 64px}}.container[data-v-cada2c46]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-cada2c46]{flex-direction:row}}.main[data-v-cada2c46]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-cada2c46]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-cada2c46]{text-align:left}}@media (min-width: 960px){.main[data-v-cada2c46]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-cada2c46]{max-width:592px}}.name[data-v-cada2c46],.text[data-v-cada2c46]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-cada2c46],.VPHero.has-image .text[data-v-cada2c46]{margin:0 auto}.name[data-v-cada2c46]{color:var(--vp-home-hero-name-color)}.clip[data-v-cada2c46]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-cada2c46],.text[data-v-cada2c46]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-cada2c46],.text[data-v-cada2c46]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-cada2c46],.VPHero.has-image .text[data-v-cada2c46]{margin:0}}.tagline[data-v-cada2c46]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-cada2c46]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-cada2c46]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-cada2c46]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-cada2c46]{margin:0}}.actions[data-v-cada2c46]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-cada2c46]{justify-content:center}@media (min-width: 640px){.actions[data-v-cada2c46]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-cada2c46]{justify-content:flex-start}}.action[data-v-cada2c46]{flex-shrink:0;padding:6px}.image[data-v-cada2c46]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-cada2c46]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-cada2c46]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-cada2c46]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-cada2c46]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-cada2c46]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-cada2c46]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-cada2c46]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-cada2c46]{width:320px;height:320px}}[data-v-cada2c46] .image-src{position:absolute;top:50%;left:50%;max-width:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-cada2c46] .image-src{max-width:256px}}@media (min-width: 960px){[data-v-cada2c46] .image-src{max-width:320px}}.VPFeature[data-v-448d9f9c]{border:1px solid var(--vp-c-bg-soft);border-radius:12px;padding:24px;height:100%;background-color:var(--vp-c-bg-soft)}.icon[data-v-448d9f9c]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-gray-light-4);width:48px;height:48px;font-size:24px}.dark .icon[data-v-448d9f9c]{background-color:var(--vp-c-bg)}.title[data-v-448d9f9c]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-448d9f9c]{padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPFeatures[data-v-204f2f23]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-204f2f23]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-204f2f23]{padding:0 64px}}.container[data-v-204f2f23]{margin:0 auto;max-width:1152px}.items[data-v-204f2f23]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-204f2f23]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-204f2f23],.item.grid-4[data-v-204f2f23],.item.grid-6[data-v-204f2f23]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-204f2f23],.item.grid-4[data-v-204f2f23]{width:50%}.item.grid-3[data-v-204f2f23],.item.grid-6[data-v-204f2f23]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-204f2f23]{width:25%}}.VPHome[data-v-04dc4a3c]{padding-bottom:96px}.VPHome[data-v-04dc4a3c] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-04dc4a3c]{padding-bottom:128px}}.VPDocAsideOutline[data-v-2a6eab60]{display:none}.VPDocAsideOutline.has-outline[data-v-2a6eab60]{display:block}.content[data-v-2a6eab60]{position:relative;border-left:1px solid var(--vp-c-divider-light);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-2a6eab60]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-2a6eab60]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.outline-link[data-v-2a6eab60]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-2a6eab60]:hover,.outline-link.active[data-v-2a6eab60]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-2a6eab60]{padding-left:13px}.root[data-v-2a6eab60]{position:relative;z-index:1}.VPDocAside[data-v-22887a42]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-22887a42]{flex-grow:1}.VPDocAside[data-v-22887a42] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-22887a42] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-22887a42] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-0c5a3df2]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-0c5a3df2]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-87fb46e8]{margin-top:64px}.edit-info[data-v-87fb46e8]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-87fb46e8]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-87fb46e8]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-87fb46e8]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-87fb46e8]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-87fb46e8]{border-top:1px solid var(--vp-c-divider-light);padding-top:24px}@media (min-width: 640px){.prev-next[data-v-87fb46e8]{display:flex}}.pager.has-prev[data-v-87fb46e8]{padding-top:8px}@media (min-width: 640px){.pager[data-v-87fb46e8]{display:flex;flex-direction:column;flex-shrink:0;width:50%}.pager.has-prev[data-v-87fb46e8]{padding-top:0;padding-left:16px}}.pager-link[data-v-87fb46e8]{display:block;border:1px solid var(--vp-c-divider-light);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-87fb46e8]:hover{border-color:var(--vp-c-brand)}.pager-link:hover .title[data-v-87fb46e8]{color:var(--vp-c-brand-dark)}.pager-link.next[data-v-87fb46e8]{margin-left:auto;text-align:right}.desc[data-v-87fb46e8]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-87fb46e8]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDoc[data-v-407838f2]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-407838f2]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-407838f2]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-407838f2]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .aside[data-v-407838f2]{display:block}.VPDoc:not(.has-sidebar) .content[data-v-407838f2]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-407838f2]{display:flex;justify-content:center}.VPDoc .aside[data-v-407838f2]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-407838f2]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-407838f2]{max-width:1104px}}.container[data-v-407838f2]{margin:0 auto;width:100%}.aside[data-v-407838f2]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.aside-container[data-v-407838f2]{position:sticky;top:0;margin-top:calc(var(--vp-nav-height-desktop) * -1 - 32px);padding-top:calc(var(--vp-nav-height-desktop) + 32px);height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-407838f2]::-webkit-scrollbar{display:none}.aside-curtain[data-v-407838f2]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-407838f2]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height-desktop) + 32px));padding-bottom:32px}.content[data-v-407838f2]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-407838f2]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-407838f2]{order:1;margin:0;min-width:640px}}.content-container[data-v-407838f2]{margin:0 auto;max-width:688px}.VPContent[data-v-2f0b66aa]{flex-grow:1;flex-shrink:0;margin:0 auto;width:100%}.VPContent.is-home[data-v-2f0b66aa]{width:100%;max-width:100%}@media (min-width: 960px){.VPContent[data-v-2f0b66aa]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-2f0b66aa]{margin:0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-2f0b66aa]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-3119c160]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-divider-light);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-3119c160]{display:none}@media (min-width: 768px){.VPFooter[data-v-3119c160]{padding:32px}}.container[data-v-3119c160]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-3119c160],.copyright[data-v-3119c160]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.message[data-v-3119c160]{order:2}.copyright[data-v-3119c160]{order:1}.Layout[data-v-e645dc52]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-3212a265]{border-top:1px solid var(--vp-c-divider-light);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-3212a265]{margin:0 auto;max-width:1152px}.love[data-v-3212a265]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-3212a265]{width:28px;height:28px;fill:currentColor}.message[data-v-3212a265]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-3212a265]{padding-top:32px}.action[data-v-3212a265]{padding-top:40px;text-align:center}.VPTeamPage[data-v-50da9578]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-50da9578]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-50da9578-s],.VPTeamMembers+.VPTeamPageSection[data-v-50da9578-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-50da9578-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-50da9578-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-50da9578-s],.VPTeamMembers+.VPTeamPageSection[data-v-50da9578-s]{margin-top:96px}}.VPTeamMembers[data-v-50da9578-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-50da9578-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-50da9578-s]{padding:0 64px}}.VPTeamPageTitle[data-v-2e148f12]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-2e148f12]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-2e148f12]{padding:80px 64px 48px}}.title[data-v-2e148f12]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-2e148f12]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-2e148f12]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-2e148f12]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-40253554]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-40253554]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-40253554]{padding:0 64px}}.title[data-v-40253554]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-40253554]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider-light)}.title-text[data-v-40253554]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-40253554]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-40253554]{padding-top:40px}.VPTeamMembersItem[data-v-cb56d8fe]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-cb56d8fe]{padding:32px}.VPTeamMembersItem.small .data[data-v-cb56d8fe]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-cb56d8fe]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-cb56d8fe]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-cb56d8fe]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-cb56d8fe]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-cb56d8fe]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-cb56d8fe]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-cb56d8fe]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-cb56d8fe]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-cb56d8fe]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-cb56d8fe]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-cb56d8fe]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-cb56d8fe]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-cb56d8fe]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-cb56d8fe]{text-align:center}.avatar[data-v-cb56d8fe]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-cb56d8fe]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-cb56d8fe]{margin:0;font-weight:600}.affiliation[data-v-cb56d8fe]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-cb56d8fe]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-cb56d8fe]:hover{color:var(--vp-c-brand)}.desc[data-v-cb56d8fe]{margin:0 auto}.links[data-v-cb56d8fe]{display:flex;justify-content:center;height:56px}.sponsor-link[data-v-cb56d8fe]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sponsor-link[data-v-cb56d8fe]:hover,.sponsor-link[data-v-cb56d8fe]:focus{outline:none;color:var(--vp-c-text-dark-1);background-color:var(--vp-c-sponsor)}.sponsor-icon[data-v-cb56d8fe]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-208bab12]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-208bab12]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-208bab12]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-208bab12]{max-width:876px}.VPTeamMembers.medium .container[data-v-208bab12]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-208bab12]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-208bab12]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-208bab12]{max-width:760px}.container[data-v-208bab12]{display:grid;gap:24px;margin:0 auto;max-width:1152px}.vhp-button[data-v-437c773e]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg);padding-left:6px;padding-right:6px;border-radius:5px;min-width:60px;height:36px;font-weight:500;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s,box-shadow .4s,opacity .4s;cursor:pointer;transform:scale(1)}.vhp-button[data-v-437c773e]:hover{border-color:var(--vp-button-brand-hover-border);background-color:var(--vp-button-brand-hover-bg)}.vhp-button[data-v-437c773e]:after{position:absolute;content:"";inset:0;border-radius:inherit;opacity:0;box-shadow:0 0 0 6px var(--vp-c-brand);transition:.4s}.vhp-button[data-v-437c773e]:active:after{box-shadow:none;opacity:1;transition:0s}.vitepress-demo{--demo-border-color: #ebedf1}.dark .vitepress-demo{--demo-border-color: #6b6c6d}.vitepress-demo{border:1px solid var(--demo-border-color);border-radius:1px;margin-bottom:24px;color:var(--vp-c-text-1);background-color:var(--vp-c-bg)}.vitepress-demo div[class*=language-]{border-radius:0;margin:0!important;line-height:1.5!important}.vitepress-demo [class*=language-] pre{padding:0}.vitepress-demo [class*=language-] code{padding:1em}.vitepress-demo .demo-slot{padding:40px 24px}.vitepress-demo .demo-actions{display:flex;height:40px;padding:0 8px;align-items:center;justify-content:space-between;border-top:1px dashed var(--demo-border-color)}.vitepress-demo .demo-buttons{display:flex;align-items:center}.vitepress-demo .demo-actions-expand,.vitepress-demo .demo-actions-copy{margin:0 0 0 16px;cursor:pointer;color:#666}.vitepress-demo .demo-actions-tip{font-size:12px;color:#3eaf7c}.vitepress-demo .extra-class{border-top:1px dashed var(--demo-border-color);box-sizing:border-box}.vitepress-demo .demo-platforms{display:flex;align-items:center}.vitepress-demo .demo-title-desc{border-top:1px dashed var(--demo-border-color);padding:1.2em 1em 1em;color:var(--vp-c-text-1);position:relative;font-size:14px}.vitepress-demo .demo-title{position:absolute;top:0;left:1em;transform:translateY(-50%);background:var(--vp-c-bg);font-weight:500}:root{--vp-c-bg: #fff;--vp-c-bg-alt: #fff;--vp-c-black-mute: #171c22;--vp-code-block-bg: #f9fafb;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-text-dark-3);--vp-code-copy-code-hover-bg: rgba(255, 255, 255, .05);--vp-code-copy-code-active-text: var(--vp-c-bg-alt);--vp-home-hero-name-color: #42d392;--vp-home-hero-name-background: -webkit-linear-gradient(315deg, #42d392 25%, #647eff);--vp-font-color: #294156;--vhp-func-bg: rgba(0, 0, 0, .03);--vhp-getstart-bg: linear-gradient(286deg, rgba(59, 206, 128, .7) 26%, rgba(100, 126, 255, .7) 76%);--vhp-demo-shadow-color: rgba(0, 0, 0, .3)}.VPHome{padding-bottom:0!important}@media (min-width: 768px){.VPHome{padding-bottom:0!important}}#docsearch button{background-color:var(--vp-c-white-mute)}input{opacity:1;background-color:var(--vhp-func-bg);padding-left:8px;height:36px;font-weight:500;border-radius:5px;font-size:15px;transition:all .3s}input:focus{color:var(--vp-button-brand-bg)}.VPNav{background-color:var(--vp-c-bg-light)!important}.vitepress-demo{border-radius:12px;overflow:hidden;margin-top:8px;box-shadow:0 2px 4px var(--vhp-demo-shadow-color);border:1px solid var(--vp-code-line-number-color)}.dark{--vp-c-bg: #010e19;--vp-c-bg-alt: rgba(11, 14, 25, .8);--vp-code-block-bg: var(--vp-c-black-mute);--vp-font-color: #b6cae6;--vhp-func-bg: rgba(255, 255, 255, .08);--vhp-getstart-bg: linear-gradient(286deg, rgba(100, 126, 255, .7) 26%, rgba(59, 206, 128, .7) 76%);--vhp-demo-shadow-color: rgba(188, 189, 190, .3)}.dark .VPNavBar.has-sidebar .content,.dark .VPNavBarTitle.has-sidebar{background-color:#0a0e19!important}.dark .VPNav{background-color:var(--vp-c-bg)!important}.dark #docsearch button{background-color:var(--vp-c-black-mute)}.vp-doc [class*=language-]:before{color:var(--vp-c-text-2)}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:4px;margin:16px 0}}@media (max-width: 639px){.vp-doc div[class*=language-]{border-radius:4px}}@media (max-width: 767px){.VPNavBar{border-bottom:0!important}.dark #docsearch button,#docsearch button{background-color:transparent}}@media (min-width: 640px){.name,.text{font-size:28px!important}}@media (min-width: 960px){.name,.text{font-size:32px!important}.VPNavBarTitle.has-sidebar{border-bottom:0}}.home[data-v-6260c8ca]{height:100%;padding-top:24px;background-size:contain}.dark .home[data-v-6260c8ca]{padding-top:24px;background:url(/docs/hooks/dark.jpg) no-repeat;background-size:contain}.demo-name[data-v-6260c8ca]{opacity:.5;text-align:center}section[data-v-6260c8ca]{padding:0 42px 32px;background:url(/docs/hooks/grid.svg)}#hero[data-v-6260c8ca]{padding:0 32px 32px;text-align:center;position:relative}#team[data-v-6260c8ca]{padding:64px 232px}.head[data-v-6260c8ca]{width:1000px;display:flex;justify-content:center}.tagline[data-v-6260c8ca]{font-size:66px;line-height:1.25;font-weight:900;letter-spacing:-1.5px;max-width:960px;margin:0 auto}.accent[data-v-6260c8ca]{font-size:76px}html:not(.dark) .accent[data-v-6260c8ca],.dark .tagline[data-v-6260c8ca]{background:-webkit-linear-gradient(315deg,#42d392 25%,#647eff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.description[data-v-6260c8ca]{max-width:960px;line-height:1.5;transition:color .5s;font-size:22px;margin:24px auto 40px;zoom:.6}.actions a[data-v-6260c8ca]{font-size:16px;display:inline-block;background:var(--vhp-getstart-bg);border-radius:12px;padding:8px 18px;font-weight:500;transition:background-color .5s,color .5s}.actions .get-started[data-v-6260c8ca]{font-size:16px}.actions .icon[data-v-6260c8ca]{display:inline;position:relative;top:-1px;margin-left:2px;fill:currentColor;transition:transform .2s}.actions .get-started[data-v-6260c8ca]:hover{transition-duration:.2s}.actions .get-started:hover .icon[data-v-6260c8ca]{transform:translate(2px)}.actions .get-started[data-v-6260c8ca],.actions .setup[data-v-6260c8ca]{color:var(--vt-c-indigo-light)}.actions .get-started[data-v-6260c8ca]:hover,.actions .setup[data-v-6260c8ca]:hover,.dark .actions .get-started[data-v-6260c8ca]:hover,.dark .actions .setup[data-v-6260c8ca]:hover{background:var(--vhp-getstart-bg)}#special-sponsor[data-v-6260c8ca]{border-top:1px solid var(--vt-c-divider-light);border-bottom:1px solid var(--vt-c-divider-light);padding:12px 24px;text-align:center}#special-sponsor span[data-v-6260c8ca]{color:var(--vt-c-text-2);font-weight:500;font-size:13px;vertical-align:middle;margin-right:24px}#special-sponsor img[data-v-6260c8ca]{display:inline-block;vertical-align:middle;height:36px;margin-right:24px}.dark #special-sponsor img[data-v-6260c8ca]{filter:grayscale(1) invert(1)}#highlights[data-v-6260c8ca]{max-width:960px;margin:0 auto;color:var(--vt-c-text-2)}#team[data-v-6260c8ca]{color:var(--vt-c-text-2)}#highlights h2[data-v-6260c8ca]{font-weight:600;font-size:20px;letter-spacing:-.4px;color:var(--vt-c-text-1);transition:color .5s;margin-bottom:.75em}#highlights p[data-v-6260c8ca]{font-weight:400;font-size:15px}#highlights .vt-box[data-v-6260c8ca]{background-color:var(--vhp-func-bg);margin-top:16px}#sponsors[data-v-6260c8ca]{max-width:900px;margin:0 auto}#sponsors h2[data-v-6260c8ca]{font-size:20px;font-weight:600;margin-bottom:1em}#sponsors .sponsor-container[data-v-6260c8ca]{margin-bottom:3em}@media (max-width: 960px){.tagline[data-v-6260c8ca]{font-size:64px;letter-spacing:-.5px}.accent[data-v-6260c8ca]{font-size:74px}.description[data-v-6260c8ca]{font-size:18px;margin-bottom:48px}}@media (max-width: 768px){.tagline[data-v-6260c8ca]{font-size:36px;letter-spacing:-.5px}.accent[data-v-6260c8ca]{font-size:48px}}@media (max-width: 576px){#hero[data-v-6260c8ca]{padding:8px 64px 32px}.description[data-v-6260c8ca]{font-size:16px;margin:18px 0 30px}#special-sponsor img[data-v-6260c8ca]{display:block;margin:2px auto 1px}#highlights h3[data-v-6260c8ca]{margin-bottom:.6em}#highlights .vt-box[data-v-6260c8ca]{padding:20px 36px;margin-top:0}#highlights .vt-box[data-v-6260c8ca]:first-child{margin-top:8px}.actions a[data-v-6260c8ca]{margin:.5em 0}}@media (max-width: 370px){.tagline[data-v-6260c8ca]{font-size:26px}.accent[data-v-6260c8ca]{font-size:36px}}@media (max-width: 768px){.vt-box-container[data-v-6260c8ca]{display:flex;flex-wrap:wrap;justify-content:space-between}.vt-box-container .vt-box[data-v-6260c8ca]{background-color:var(--vt-c-bg-soft);transition:color .5s,background-color .5s;padding:28px 36px;border-radius:8px;flex:0 100%;margin-bottom:20px;font-size:14px;font-weight:500}}@media (min-width: 769px){.vt-box-container[data-v-6260c8ca]{display:flex;flex-wrap:wrap;justify-content:space-between}.vt-box-container .vt-box[data-v-6260c8ca]{background-color:var(--vt-c-bg-soft);transition:color .5s,background-color .5s;padding:28px;border-radius:8px;flex:0 32%;font-size:14px;font-weight:500}}h2{text-align:center;font-weight:600;color:var(--vp-font-color);padding-bottom:1rem}#demo-editor{display:flex;justify-content:center;overflow:hidden}.import-code{color:#e647a4}.export-code{color:#46a6f0}.module-code{color:#fabe3b}.variable-code{color:#38cd46}.label-code{color:#f03c45}.terminal{line-height:16px;min-height:480px;margin:25px 12px 32px;padding:30px 30px 30px 10px;border-radius:7px;position:relative;box-shadow:0 0 0 1px #0000000d,0 0 30px 1px #00000026;width:888px;max-width:888px}.terminal:after{content:"";position:absolute;top:12px;left:10px;width:12px;height:12px;background:#f95c5b;border-radius:100%;box-shadow:0 0 0 1px #da3d42,22px 0 #fabe3b,22px 0 0 1px #ecb03e,44px 0 #38cd46,44px 0 0 1px #2eae32}@media (max-width: 768px){.terminal{font-size:12px;margin:12px}}@media (max-width: 370px){.terminal{font-size:12px;margin:12px}}.container[data-v-360a846b]{display:flex;flex-direction:column;align-items:center}.avatar[data-v-360a846b]{min-height:4.75rem;min-width:4.75rem;border-radius:4.75rem}.name[data-v-360a846b]{cursor:pointer}.name[data-v-360a846b],.description[data-v-360a846b]{margin-top:16px;zoom:.85;height:60px}.description[data-v-360a846b]{color:var(--vp-font-color)}.code[data-v-360a846b]{background-color:var(--vp-code-block-bg);display:flex;align-items:center;padding:12px;border-radius:5px;margin-top:12px}.code-container[data-v-360a846b]{display:flex;flex-direction:column;padding-left:8px}.icon[data-v-360a846b]{width:1.2rem;height:1.2rem}.container[data-v-345e01e7]{display:flex}h2[data-v-345e01e7]{text-align:center;font-weight:600;color:var(--vp-font-color);padding-bottom:1rem}.main[data-v-345e01e7]{text-align:center;background-color:var(--vp-c-bg)}.grid[data-v-345e01e7]{display:grid;grid-row-gap:.45rem;grid-column-gap:3rem;grid-template-columns:repeat(4,1fr);padding-left:184px;padding-right:184px}.grid div[data-v-345e01e7]{padding:42px 32px}@media (max-width: 1450px){.grid[data-v-345e01e7]{display:grid;grid-row-gap:.45rem;grid-column-gap:3rem;grid-template-columns:repeat(3,1fr);padding-left:124px;padding-right:124px}.grid div[data-v-345e01e7]{padding:42px 32px}}@media (max-width: 1100px){.grid[data-v-345e01e7]{display:grid;grid-row-gap:.45rem;grid-column-gap:3rem;grid-template-columns:repeat(2,1fr);padding-left:64px;padding-right:64px}.grid div[data-v-345e01e7]{padding:42px 32px}}@media (max-width: 768px){.grid[data-v-345e01e7]{display:grid;grid-row-gap:24px;grid-column-gap:3rem;grid-template-columns:repeat(1,1fr)}.grid div[data-v-345e01e7]{padding:12px}}@media (max-width: 370px){.tagline[data-v-345e01e7]{font-size:36px}}.container[data-v-23f2a419]{display:flex;flex-direction:column;align-items:center;padding:80px 32px 32px;position:relative;margin:0 auto}.img[data-v-23f2a419]{background-image:linear-gradient(-25deg,#647eff 40%,#42d392 50%);filter:blur(60px);position:absolute;width:260px;height:230px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}img[data-v-23f2a419]{width:260px;height:230px;z-index:1}@media (max-width: 1450px){.img[data-v-23f2a419]{width:216px;height:192px;filter:blur(60px)}img[data-v-23f2a419]{width:216px;height:192px}}@media (max-width: 1100px){.img[data-v-23f2a419]{width:173px;height:154px;filter:blur(60px)}img[data-v-23f2a419]{width:173px;height:154px}}@media (max-width: 768px){.container[data-v-23f2a419]{display:flex;flex-direction:column;align-items:center;padding:32px 16px 16px}.img[data-v-23f2a419]{width:131px;height:115px;filter:blur(40px)}img[data-v-23f2a419]{width:131px;height:115px}}@media (max-width: 370px){.container[data-v-23f2a419]{display:flex;flex-direction:column;align-items:center;padding:8px}.img[data-v-23f2a419]{width:87px;height:77px;filter:blur(30px)}img[data-v-23f2a419]{width:87px;height:77px}}#iviewBg[data-v-cca34280]{width:100%;height:100%;overflow:hidden;position:absolute;top:0;right:0;bottom:0px;left:0;opacity:.85}.resize{min-width:200px;min-height:200px;max-width:500px;max-height:500px}.done{text-decoration:line-through}.resize{min-width:200px;min-height:200px;max-width:500px;max-height:500px}.contain button[data-v-49c81114]{margin-right:8px}.home[data-v-9f787786]{height:100%;padding-top:24px;background-size:contain}.dark .home[data-v-9f787786]{padding-top:24px;background:url(/docs/hooks/dark.jpg) no-repeat;background-size:contain}.demo-name[data-v-9f787786]{opacity:.5;text-align:center}section[data-v-9f787786]{padding:0 42px 32px;background:url(/docs/hooks/grid.svg)}#hero[data-v-9f787786]{padding:0 32px 32px;text-align:center;position:relative}#team[data-v-9f787786]{padding:64px 232px}.head[data-v-9f787786]{width:1000px;display:flex;justify-content:center}.tagline[data-v-9f787786]{font-size:66px;line-height:1.25;font-weight:900;letter-spacing:-1.5px;max-width:960px;margin:0 auto}.accent[data-v-9f787786]{font-size:76px}html:not(.dark) .accent[data-v-9f787786],.dark .tagline[data-v-9f787786]{background:-webkit-linear-gradient(315deg,#42d392 25%,#647eff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.description[data-v-9f787786]{max-width:960px;line-height:1.5;transition:color .5s;font-size:22px;margin:24px auto 40px;zoom:.6}.actions a[data-v-9f787786]{font-size:16px;display:inline-block;background:var(--vhp-getstart-bg);border-radius:12px;padding:8px 18px;font-weight:500;transition:background-color .5s,color .5s}.actions .get-started[data-v-9f787786]{font-size:16px}.actions .icon[data-v-9f787786]{display:inline;position:relative;top:-1px;margin-left:2px;fill:currentColor;transition:transform .2s}.actions .get-started[data-v-9f787786]:hover{transition-duration:.2s}.actions .get-started:hover .icon[data-v-9f787786]{transform:translate(2px)}.actions .get-started[data-v-9f787786],.actions .setup[data-v-9f787786]{color:var(--vt-c-indigo-light)}.actions .get-started[data-v-9f787786]:hover,.actions .setup[data-v-9f787786]:hover,.dark .actions .get-started[data-v-9f787786]:hover,.dark .actions .setup[data-v-9f787786]:hover{background:var(--vhp-getstart-bg)}#special-sponsor[data-v-9f787786]{border-top:1px solid var(--vt-c-divider-light);border-bottom:1px solid var(--vt-c-divider-light);padding:12px 24px;text-align:center}#special-sponsor span[data-v-9f787786]{color:var(--vt-c-text-2);font-weight:500;font-size:13px;vertical-align:middle;margin-right:24px}#special-sponsor img[data-v-9f787786]{display:inline-block;vertical-align:middle;height:36px;margin-right:24px}.dark #special-sponsor img[data-v-9f787786]{filter:grayscale(1) invert(1)}#highlights[data-v-9f787786]{max-width:960px;margin:0 auto;color:var(--vt-c-text-2)}#team[data-v-9f787786]{color:var(--vt-c-text-2)}#highlights h2[data-v-9f787786]{font-weight:600;font-size:20px;letter-spacing:-.4px;color:var(--vt-c-text-1);transition:color .5s;margin-bottom:.75em}#highlights p[data-v-9f787786]{font-weight:400;font-size:15px}#highlights .vt-box[data-v-9f787786]{background-color:var(--vhp-func-bg);margin-top:16px}#sponsors[data-v-9f787786]{max-width:900px;margin:0 auto}#sponsors h2[data-v-9f787786]{font-size:20px;font-weight:600;margin-bottom:1em}#sponsors .sponsor-container[data-v-9f787786]{margin-bottom:3em}@media (max-width: 960px){.tagline[data-v-9f787786]{font-size:64px;letter-spacing:-.5px}.accent[data-v-9f787786]{font-size:74px}.description[data-v-9f787786]{font-size:18px;margin-bottom:48px}}@media (max-width: 768px){.tagline[data-v-9f787786]{font-size:36px;letter-spacing:-.5px}.accent[data-v-9f787786]{font-size:48px}}@media (max-width: 576px){#hero[data-v-9f787786]{padding:8px 64px 32px}.description[data-v-9f787786]{font-size:16px;margin:18px 0 30px}#special-sponsor img[data-v-9f787786]{display:block;margin:2px auto 1px}#highlights h3[data-v-9f787786]{margin-bottom:.6em}#highlights .vt-box[data-v-9f787786]{padding:20px 36px;margin-top:0}#highlights .vt-box[data-v-9f787786]:first-child{margin-top:8px}.actions a[data-v-9f787786]{margin:.5em 0}}@media (max-width: 370px){.tagline[data-v-9f787786]{font-size:26px}.accent[data-v-9f787786]{font-size:36px}}@media (max-width: 768px){.vt-box-container[data-v-9f787786]{display:flex;flex-wrap:wrap;justify-content:space-between}.vt-box-container .vt-box[data-v-9f787786]{background-color:var(--vt-c-bg-soft);transition:color .5s,background-color .5s;padding:28px 36px;border-radius:8px;flex:0 100%;margin-bottom:20px;font-size:14px;font-weight:500}}@media (min-width: 769px){.vt-box-container[data-v-9f787786]{display:flex;flex-wrap:wrap;justify-content:space-between}.vt-box-container .vt-box[data-v-9f787786]{background-color:var(--vt-c-bg-soft);transition:color .5s,background-color .5s;padding:28px;border-radius:8px;flex:0 32%;font-size:14px;font-weight:500}}.VPCarbonAds{display:flex;justify-content:center;align-items:center;padding:24px;border-radius:12px;min-height:240px;text-align:center;line-height:18px;font-size:12px;font-weight:500;background-color:var(--vp-c-bg-soft);transition:color .5s,background-color .5s}.VPCarbonAds img{margin:0 auto;border-radius:6px}.VPCarbonAds .carbon-text{display:block;margin:0 auto;padding-top:12px;color:var(--vp-c-text-1);transition:color .25s}.VPCarbonAds .carbon-text:hover{color:var(--vp-c-brand)}.VPCarbonAds .carbon-poweredby{display:block;padding-top:6px;font-size:11px;font-weight:500;color:var(--vp-c-text-2);text-transform:uppercase;transition:color .25s}.VPCarbonAds .carbon-poweredby:hover{color:var(--vp-c-text-1)} diff --git a/hooks/assets/useSetState_index.md.0693216a.js b/hooks/assets/useSetState_index.md.e8e67cdc.js similarity index 99% rename from hooks/assets/useSetState_index.md.0693216a.js rename to hooks/assets/useSetState_index.md.e8e67cdc.js index fe4cc6cdb..041a289b4 100644 --- a/hooks/assets/useSetState_index.md.0693216a.js +++ b/hooks/assets/useSetState_index.md.e8e67cdc.js @@ -1,4 +1,4 @@ -import{D as p}from"./chunks/demo.fc72dc8f.js";import{q as C,o as E,c as o,a,w as e,d as s,f as n,b as t}from"./app.5e4b2b03.js";const F=s("h1",{id:"usesetstate",tabindex:"-1"},[n("useSetState "),s("a",{class:"header-anchor",href:"#usesetstate","aria-hidden":"true"},"#")],-1),A=s("p",null,"\u7BA1\u7406 object \u7C7B\u578B \u54CD\u5E94\u5F0F \u7684 Hooks\uFF0C\u652F\u6301\u89E3\u6784\u8D4B\u503C\uFF0C\u66F4\u65B9\u4FBF\u7EF4\u62A4\u3002",-1),c=s("h2",{id:"\u4EE3\u7801\u6F14\u793A",tabindex:"-1"},[n("\u4EE3\u7801\u6F14\u793A "),s("a",{class:"header-anchor",href:"#\u4EE3\u7801\u6F14\u793A","aria-hidden":"true"},"#")],-1),D=t(`

API

const [state, setState] = useSetState<S extends Record<string, any>>
+import{D as p}from"./chunks/demo.ef73852f.js";import{q as C,o as E,c as o,a,w as e,d as s,f as n,b as t}from"./app.5e4b2b03.js";const F=s("h1",{id:"usesetstate",tabindex:"-1"},[n("useSetState "),s("a",{class:"header-anchor",href:"#usesetstate","aria-hidden":"true"},"#")],-1),A=s("p",null,"\u7BA1\u7406 object \u7C7B\u578B \u54CD\u5E94\u5F0F \u7684 Hooks\uFF0C\u652F\u6301\u89E3\u6784\u8D4B\u503C\uFF0C\u66F4\u65B9\u4FBF\u7EF4\u62A4\u3002",-1),c=s("h2",{id:"\u4EE3\u7801\u6F14\u793A",tabindex:"-1"},[n("\u4EE3\u7801\u6F14\u793A "),s("a",{class:"header-anchor",href:"#\u4EE3\u7801\u6F14\u793A","aria-hidden":"true"},"#")],-1),D=t(`

API

const [state, setState] = useSetState<S extends Record<string, any>>
 (initialState: StateType<S>)
 :[
   [S] extends [Ref<any>] ? S : Ref<UnwrapRef<S>>,
diff --git a/hooks/assets/useSetState_index.md.0693216a.lean.js b/hooks/assets/useSetState_index.md.e8e67cdc.lean.js
similarity index 99%
rename from hooks/assets/useSetState_index.md.0693216a.lean.js
rename to hooks/assets/useSetState_index.md.e8e67cdc.lean.js
index a472828dc..d61156d25 100644
--- a/hooks/assets/useSetState_index.md.0693216a.lean.js
+++ b/hooks/assets/useSetState_index.md.e8e67cdc.lean.js
@@ -1 +1 @@
-import{D as p}from"./chunks/demo.fc72dc8f.js";import{q as C,o as E,c as o,a,w as e,d as s,f as n,b as t}from"./app.5e4b2b03.js";const F=s("h1",{id:"usesetstate",tabindex:"-1"},[n("useSetState "),s("a",{class:"header-anchor",href:"#usesetstate","aria-hidden":"true"},"#")],-1),A=s("p",null,"\u7BA1\u7406 object \u7C7B\u578B \u54CD\u5E94\u5F0F \u7684 Hooks\uFF0C\u652F\u6301\u89E3\u6784\u8D4B\u503C\uFF0C\u66F4\u65B9\u4FBF\u7EF4\u62A4\u3002",-1),c=s("h2",{id:"\u4EE3\u7801\u6F14\u793A",tabindex:"-1"},[n("\u4EE3\u7801\u6F14\u793A "),s("a",{class:"header-anchor",href:"#\u4EE3\u7801\u6F14\u793A","aria-hidden":"true"},"#")],-1),D=t("",4),d=JSON.parse('{"title":"useSetState","description":"","frontmatter":{"map":{"path":"/useSetState"},"realPath":"src/useSetState/index.zh-CN.md"},"headers":[{"level":2,"title":"\u4EE3\u7801\u6F14\u793A","slug":"\u4EE3\u7801\u6F14\u793A"},{"level":2,"title":"API","slug":"api"},{"level":2,"title":"Source","slug":"source"}],"relativePath":"useSetState/index.md"}'),B={name:"useSetState/index.md"},h=Object.assign(B,{setup(r){return(y,i)=>{const l=C("demo");return E(),o("div",null,[F,A,c,a(l,{code:"%3Ctemplate%3E%0A%20%20%3Cdiv%3E%7B%7B%20JSON.stringify(state)%20%7D%7D%3C%2Fdiv%3E%0A%20%20%3Cdiv%20class%3D%22contain%22%3E%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22initAge()%22%3E%0A%20%20%20%20%20%20Add%20age%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22updateAge()%22%3E%0A%20%20%20%20%20%20Update%20age%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22addTag()%22%3E%0A%20%20%20%20%20%20Add%20tag%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22cover()%22%3E%0A%20%20%20%20%20%20cover%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%20%20%3C%2Fdiv%3E%0A%3C%2Ftemplate%3E%0A%0A%3Cscript%20lang%3D%22ts%22%20setup%3E%0A%20%20import%20%7B%20useSetState%20%7D%20from%20'vue-hooks-plus'%0A%0A%20%20const%20%5Bstate%2C%20setState%5D%20%3D%20useSetState(%7B%20name%3A%20'vue-hooks-plus'%20%7D)%0A%0A%20%20const%20initAge%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20age%3A%201%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20addTag%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20...state.value%2C%0A%20%20%20%20%20%20age%3A%203%2C%0A%20%20%20%20%20%20tag%3A%20'nice'%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20updateAge%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20age%3A%202%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20cover%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20age%3A%200%2C%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20true%2C%0A%20%20%20%20)%0A%20%20%7D%0A%3C%2Fscript%3E%0A%0A%3Cstyle%20scoped%20lang%3D%22less%22%3E%0A%20%20.contain%20%7B%0A%20%20%20%20button%20%7B%0A%20%20%20%20%20%20margin-right%3A%208px%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%3C%2Fstyle%3E%0A",highlightedCode:"%3Cpre%20v-pre%20class%3D%22vp-code-dark%22%3E%3Ccode%3E%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%7B%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3EJSON%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3Estringify%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E)%20%7D%7D%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclass%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bcontain%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Add%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Update%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Add%20tag%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20cover%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bts%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Esetup%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Eimport%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Efrom%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%5B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%5D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ename%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E1%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20...%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evalue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E3%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bnice%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E2%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E0%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%7D%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Etrue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Escoped%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bless%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E.contain%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ebutton%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20margin-right%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E8%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Epx%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%3C%2Fcode%3E%3C%2Fpre%3E%3Cpre%20v-pre%20class%3D%22vp-code-light%22%3E%3Ccode%3E%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%7B%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3EJSON%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Estringify%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(state)%20%7D%7D%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclass%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bcontain%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Add%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Update%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Add%20tag%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20cover%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bts%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Esetup%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Eimport%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%20useSetState%20%7D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Efrom%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%5B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%5D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%20name%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E1%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E...%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3Estate.value%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E3%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20tag%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bnice%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E2%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E0%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%7D%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Etrue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Escoped%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bless%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E.contain%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ebutton%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Emargin-right%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E8%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Epx%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%3C%2Fcode%3E%3C%2Fpre%3E",src:"/Users/yangjie/WebCode/npm\u5E93/vue-hooks-plus/vue-hooks-plus/packages/hooks/src/useSetState/demo/demo.vue",title:"\u57FA\u672C\u7528\u6CD5",desc:""},{default:e(()=>[a(p)]),_:1}),D])}}});export{d as __pageData,h as default};
+import{D as p}from"./chunks/demo.ef73852f.js";import{q as C,o as E,c as o,a,w as e,d as s,f as n,b as t}from"./app.5e4b2b03.js";const F=s("h1",{id:"usesetstate",tabindex:"-1"},[n("useSetState "),s("a",{class:"header-anchor",href:"#usesetstate","aria-hidden":"true"},"#")],-1),A=s("p",null,"\u7BA1\u7406 object \u7C7B\u578B \u54CD\u5E94\u5F0F \u7684 Hooks\uFF0C\u652F\u6301\u89E3\u6784\u8D4B\u503C\uFF0C\u66F4\u65B9\u4FBF\u7EF4\u62A4\u3002",-1),c=s("h2",{id:"\u4EE3\u7801\u6F14\u793A",tabindex:"-1"},[n("\u4EE3\u7801\u6F14\u793A "),s("a",{class:"header-anchor",href:"#\u4EE3\u7801\u6F14\u793A","aria-hidden":"true"},"#")],-1),D=t("",4),d=JSON.parse('{"title":"useSetState","description":"","frontmatter":{"map":{"path":"/useSetState"},"realPath":"src/useSetState/index.zh-CN.md"},"headers":[{"level":2,"title":"\u4EE3\u7801\u6F14\u793A","slug":"\u4EE3\u7801\u6F14\u793A"},{"level":2,"title":"API","slug":"api"},{"level":2,"title":"Source","slug":"source"}],"relativePath":"useSetState/index.md"}'),B={name:"useSetState/index.md"},h=Object.assign(B,{setup(r){return(y,i)=>{const l=C("demo");return E(),o("div",null,[F,A,c,a(l,{code:"%3Ctemplate%3E%0A%20%20%3Cdiv%3E%7B%7B%20JSON.stringify(state)%20%7D%7D%3C%2Fdiv%3E%0A%20%20%3Cdiv%20class%3D%22contain%22%3E%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22initAge()%22%3E%0A%20%20%20%20%20%20Add%20age%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22updateAge()%22%3E%0A%20%20%20%20%20%20Update%20age%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22addTag()%22%3E%0A%20%20%20%20%20%20Add%20tag%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%0A%20%20%20%20%3Cvhp-button%20%40click%3D%22cover()%22%3E%0A%20%20%20%20%20%20cover%0A%20%20%20%20%3C%2Fvhp-button%3E%0A%20%20%3C%2Fdiv%3E%0A%3C%2Ftemplate%3E%0A%0A%3Cscript%20lang%3D%22ts%22%20setup%3E%0A%20%20import%20%7B%20useSetState%20%7D%20from%20'vue-hooks-plus'%0A%0A%20%20const%20%5Bstate%2C%20setState%5D%20%3D%20useSetState(%7B%20name%3A%20'vue-hooks-plus'%20%7D)%0A%0A%20%20const%20initAge%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20age%3A%201%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20addTag%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20...state.value%2C%0A%20%20%20%20%20%20age%3A%203%2C%0A%20%20%20%20%20%20tag%3A%20'nice'%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20updateAge%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%7B%0A%20%20%20%20%20%20age%3A%202%2C%0A%20%20%20%20%7D)%0A%20%20%7D%0A%0A%20%20const%20cover%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20setState(%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20age%3A%200%2C%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20true%2C%0A%20%20%20%20)%0A%20%20%7D%0A%3C%2Fscript%3E%0A%0A%3Cstyle%20scoped%20lang%3D%22less%22%3E%0A%20%20.contain%20%7B%0A%20%20%20%20button%20%7B%0A%20%20%20%20%20%20margin-right%3A%208px%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%3C%2Fstyle%3E%0A",highlightedCode:"%3Cpre%20v-pre%20class%3D%22vp-code-dark%22%3E%3Ccode%3E%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%7B%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3EJSON%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3Estringify%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E)%20%7D%7D%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclass%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bcontain%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Add%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Update%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20Add%20tag%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20cover%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bts%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Esetup%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Eimport%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Efrom%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%5B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%5D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ename%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E1%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20...%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E5C07B%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Evalue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E3%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Etag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26%2339%3Bnice%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E2%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2356B6C2%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23C678DD%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2361AFEF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E(%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Eage%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E0%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%7D%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Etrue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Escoped%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2398C379%22%3E%26quot%3Bless%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E.contain%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Ebutton%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%20%20margin-right%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23D19A66%22%3E8%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Epx%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23E06C75%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23ABB2BF%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%3C%2Fcode%3E%3C%2Fpre%3E%3Cpre%20v-pre%20class%3D%22vp-code-light%22%3E%3Ccode%3E%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%7B%7B%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3EJSON%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E.%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Estringify%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(state)%20%7D%7D%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclass%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bcontain%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Add%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Update%20age%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20Add%20tag%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%40%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Eclick%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E()%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20cover%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Evhp-button%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ediv%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Etemplate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bts%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Esetup%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Eimport%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%20useSetState%20%7D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Efrom%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%5B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Estate%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%5D%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EuseSetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%20name%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bvue-hooks-plus%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EinitAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E1%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EaddTag%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E...%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3Estate.value%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E3%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20tag%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26%2339%3Bnice%26%2339%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EupdateAge%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E2%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Econst%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3Ecover%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20()%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3E%3D%26gt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%238250DF%22%3EsetState%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E(%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%20%20age%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E0%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%7D%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Etrue%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%2C%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20)%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Escript%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Escoped%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Elang%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3D%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230A3069%22%3E%26quot%3Bless%26quot%3B%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E.contain%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Ebutton%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%7B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%20%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3Emargin-right%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3A%20%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%230550AE%22%3E8%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23CF222E%22%3Epx%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%20%20%7D%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26lt%3B%2F%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%23116329%22%3Estyle%3C%2Fspan%3E%3Cspan%20style%3D%22color%3A%20%2324292F%22%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%0A%3Cspan%20class%3D%22line%22%3E%3C%2Fspan%3E%3C%2Fcode%3E%3C%2Fpre%3E",src:"/Users/yangjie/WebCode/npm\u5E93/vue-hooks-plus/vue-hooks-plus/packages/hooks/src/useSetState/demo/demo.vue",title:"\u57FA\u672C\u7528\u6CD5",desc:""},{default:e(()=>[a(p)]),_:1}),D])}}});export{d as __pageData,h as default};
diff --git a/hooks/en/guide/index.html b/hooks/en/guide/index.html
index 10345ab5d..24f6c8d68 100644
--- a/hooks/en/guide/index.html
+++ b/hooks/en/guide/index.html
@@ -5,7 +5,7 @@
     
     ✨ Features | VueHook Plus
     
-    
+    
     
     
     
@@ -74,7 +74,7 @@
   ],
 }
 

For other supported tools, please see unplugin-auto-import


🧩 Compatible

Not compatible with vue2 version

- + diff --git a/hooks/en/index.html b/hooks/en/index.html index 427e2eb31..92df5b9ed 100644 --- a/hooks/en/index.html +++ b/hooks/en/index.html @@ -5,20 +5,20 @@ VueHook Plus | VueHook Plus - + - + - + -
Skip to content
vue-hooks-plus

VueHooks
Plus

Get Started

🛸 Hooks for vue3

Contains a comprehensive collection of basic Hooks.

🏄🏼‍♂️ Easy to learn and use

Simple language and easy-to-use features, easy to use, detailed documentation.

🎯 TypeScript

Written in TypeScript with predictable static types.

🎪 Interactive demo

Interactive demo, immersive.

🔋 Support SSR

Friendly support for server-side rendering.

🦾 useRequest

Preferred useRequest, Powerful request middle tier.

🤺 Playground

there's ample scope for one's abilities.

🧩 On-demand load

Take what you want, the package is smaller.

🔐 Safe

Perfect test, safe and reliable.

Grace

Demo.vue

Meet The Team

- +
Skip to content
vue-hooks-plus

VueHooks
Plus

Get Started

🛸 Hooks for vue3

Contains a comprehensive collection of basic Hooks.

🏄🏼‍♂️ Easy to learn and use

Simple language and easy-to-use features, easy to use, detailed documentation.

🎯 TypeScript

Written in TypeScript with predictable static types.

🎪 Interactive demo

Interactive demo, immersive.

🔋 Support SSR

Friendly support for server-side rendering.

🦾 useRequest

Preferred useRequest, Powerful request middle tier.

🤺 Playground

there's ample scope for one's abilities.

🧩 On-demand load

Take what you want, the package is smaller.

🔐 Safe

Perfect test, safe and reliable.

Grace

Demo.vue

Meet The Team

+ diff --git a/hooks/en/migrate/index.html b/hooks/en/migrate/index.html index 94e715a43..dd1755574 100644 --- a/hooks/en/migrate/index.html +++ b/hooks/en/migrate/index.html @@ -5,7 +5,7 @@ 🫶 Migrate to v2 version | VueHook Plus - + @@ -53,7 +53,7 @@ [useFormatterPlugin, ...otherPlugins], )

Just migrate it to pluginOptions based on the original plugin option.

- + diff --git a/hooks/en/onlineTeaching/index.html b/hooks/en/onlineTeaching/index.html index f396cdf9c..fae31f586 100644 --- a/hooks/en/onlineTeaching/index.html +++ b/hooks/en/onlineTeaching/index.html @@ -5,7 +5,7 @@ Tutorial | VueHook Plus - + @@ -17,7 +17,7 @@ - + diff --git a/hooks/en/useAsyncOrder/index.html b/hooks/en/useAsyncOrder/index.html index 5db5f1153..55f4fccb9 100644 --- a/hooks/en/useAsyncOrder/index.html +++ b/hooks/en/useAsyncOrder/index.html @@ -5,7 +5,7 @@ useAsyncOrder | VueHook Plus - + @@ -42,7 +42,7 @@ onError?: (err: unknown) => void }})

Params

PropertyDescriptionType
taskaynchronous task order queue((resolve?: Resolve,reject?: InterruptibleRejectType,index?: number) => void)[]
optionoption-

Option

PropertyDescriptionType
delayDelay executionnumber
onReadyPreparation phase callbackvoid
onSuccessSuccessful callback(result: unknown) => void
onErrorError callback(err: unknown) => void

Source

SourceDocsDemo

- + diff --git a/hooks/en/useBoolean/index.html b/hooks/en/useBoolean/index.html index 00b2e5024..0dbf74cc5 100644 --- a/hooks/en/useBoolean/index.html +++ b/hooks/en/useBoolean/index.html @@ -5,7 +5,7 @@ useBoolean | VueHook Plus - + @@ -24,7 +24,7 @@ defaultValue? : boolean, );

Params

PropertyDescriptionTypeDefault
defaultValueThe default value of the state. Optional.booleanfalse

Result

PropertyDescriptionType
stateCurrent valueReadonly<Ref<boolean>>
actionsA set of methods to update state valueActions

Actions

PropertyDescriptionType
toggleToggle state() => void
setSet state(value: boolean) => void
setTrueSet state to true() => void
setFalseSet state to false() => void
- + diff --git a/hooks/en/useCookieState/index.html b/hooks/en/useCookieState/index.html index c68c8c113..f979d9dfa 100644 --- a/hooks/en/useCookieState/index.html +++ b/hooks/en/useCookieState/index.html @@ -5,7 +5,7 @@ useCookieState | VueHook Plus - + @@ -36,7 +36,7 @@ options?: Options, );

Note

If you want to remove this data from the document.cookie, use the setState() or setState (undefined).

Params

PropertyDescriptionTypeDefault
cookieKeyThe key of Cookiestring-
optionsOptional. Cookie configurationOptions-

Result

PropertyDescriptionType
stateLocal Cookie valueReadonly<Ref<string>> | undefined
setStateUpdate Cookie valueSetState

setState can update cookie options, which will be merged with the options set by useCookieState

const targetOptions = { ...options, ...updateOptions }

Options

PropertyDescriptionTypeDefault
defaultValueOptional. Default value, but not store to Cookiestring | undefined | (() => (string | undefined))undefined
expiresOptional. Set Cookie expiration timenumber | Date-
pathOptional. Specify available pathsstring/
domainOptional. Specify available domain. Default creation domainstring-
secureOptional. Specify whether the Cookie can only be transmitted over secure protocol as httpsbooleanfalse
sameSiteOptional. Specify whether the browser can send this Cookie along with cross-site requestsstrict | lax | none-

Options is same as js-cookie attributes

Source

SourceDocsDemo

- + diff --git a/hooks/en/useCounter/index.html b/hooks/en/useCounter/index.html index 162d87fd3..edb9bb457 100644 --- a/hooks/en/useCounter/index.html +++ b/hooks/en/useCounter/index.html @@ -5,7 +5,7 @@ useCounter | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useCounter

A hook that manage counter.

Code demonstration

API

const [current, { inc, dec, set, reset }] = useCounter(initialValue, { min, max })
 
const [current, { inc, dec, set, reset }] = useCounter(initialValue, { min, max })
 

Result

PropertyDescriptionType
currentCurrent valueReadonly<Ref<number>>
incIncrement, default delta is 1(delta?: number) => void
decDecrement, default delta is 1(delta?: number) => void
setSet current value(value: number | ((c: number) => number)) => void
resetReset current value to initial value() => void

Params

PropertyDescriptionTypeDefault
initialValueInitial countnumber0
minMin countnumber-
maxMax countnumber-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useDarkMode/index.html b/hooks/en/useDarkMode/index.html index c69ba6e35..49e698cb3 100644 --- a/hooks/en/useDarkMode/index.html +++ b/hooks/en/useDarkMode/index.html @@ -5,7 +5,7 @@ useDarkMode | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useDarkMode

Hook using Dark mode.

Code demonstration

API

const [darkMode, setDarkMode] = useDarkMode()
 
const [darkMode, setDarkMode] = useDarkMode()
 

Result

PropertyDescriptionType
darkModeIs it in dark modeComputedRef<boolean>
setDarkModeSet the dark mode, and the undefined is the following systemboolean | undefined

Source

SourceDocsDemo

- + diff --git a/hooks/en/useDebounce/index.html b/hooks/en/useDebounce/index.html index e53ed8524..0e5f5aed8 100644 --- a/hooks/en/useDebounce/index.html +++ b/hooks/en/useDebounce/index.html @@ -5,7 +5,7 @@ useDebounce | VueHook Plus - + @@ -26,7 +26,7 @@ options?: Options );

Params

PropertyDescriptionTypeDefault
valueThe value to debounce.Ref<any>-
optionsConfig for the debounce behaviors.Options-

Options

PropertyDescriptionTypeDefault
waitThe number of milliseconds to delay.number1000
leadingSpecify invoking on the leading edge of the timeout.booleanfalse
trailingSpecify invoking on the trailing edge of the timeout.booleantrue
maxWaitThe maximum time func is allowed to be delayed before it’s invoked.number-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useDebounceFn/index.html b/hooks/en/useDebounceFn/index.html index 4d26c11c8..79c073d97 100644 --- a/hooks/en/useDebounceFn/index.html +++ b/hooks/en/useDebounceFn/index.html @@ -5,7 +5,7 @@ useDebounceFn | VueHook Plus - + @@ -34,7 +34,7 @@ options?: Options );

Params

PropertyDescriptionTypeDefault
fnThe function to debounce.(...args: any[]) => any-
optionsConfig for the debounce behaviors.Options-

Options

PropertyDescriptionTypeDefault
waitThe number of milliseconds to delay.number1000
leadingSpecify invoking on the leading edge of the timeout.booleanfalse
trailingSpecify invoking on the trailing edge of the timeout.booleantrue
maxWaitThe maximum time func is allowed to be delayed before it’s invoked.number-

Result

PropertyDescriptionType
runInvode and pass parameters to fn.(...args: any[]) => any
cancelCancel the invocation of currently debounced function.() => void
flushImmediately invoke currently debounced function.() => void

Source

SourceDocsDemo

- + diff --git a/hooks/en/useDrop/index.html b/hooks/en/useDrop/index.html index f7fb5914d..03e85497c 100644 --- a/hooks/en/useDrop/index.html +++ b/hooks/en/useDrop/index.html @@ -5,7 +5,7 @@ useDrop & useDrag | VueHook Plus - + @@ -36,7 +36,7 @@ options?: DropOptions );

Params

参数DescriptionTypeDefault
targetDOM element or ref() => Element | Element | MutableRefObject<Element>-
optionsMore configDragOptions-

DropOptions

参数DescriptionTypeDefault
onTextThe callback when text is dropped or pasted(text: string, e: DragEvent) => void-
onFilesThe callback when file is dropped or pasted(files: File[], e: DragEvent) => void-
onUrlThe callback when uri is dropped or pasted(text: string, e: DragEvent) => void-
onDomThe callback when DOM is dropped or pasted(content: any, e: DragEvent) => void-
onDropThe callback when any is dropped(e: DragEvent) => void-
onPasteThe callback when any is pasted(e: DragEvent) => void-
onDragEnterOn drag enter callback(e: DragEvent) => void-
onDragOverOn drag over callback(e: DragEvent) => void-
onDragLeaveOn drag leave callback(e: DragEvent) => void-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useElementBounding/index.html b/hooks/en/useElementBounding/index.html index 0902d71bf..dec343bba 100644 --- a/hooks/en/useElementBounding/index.html +++ b/hooks/en/useElementBounding/index.html @@ -5,7 +5,7 @@ useElementBounding | VueHook Plus - + @@ -30,7 +30,7 @@ immediate?: boolean })

Params

PropertyDescriptionTypeDefault
targetDOM element or ref() => Element | Element | JSX.Element-
optionsMore configUseElementBoundingOptions-

Options

参数说明类型默认值
resetWhen the component is mounted, initialize all values to 0booleantrue
windowResizeMonitor window size changesbooleantrue
windowScrollMonitor window scrolling changesbooleantrue
immediateExecuted immediately when the component is mountedbooleantrue

Source

SourceDocsDemo

- + diff --git a/hooks/en/useEventEmitter/index.html b/hooks/en/useEventEmitter/index.html index 64fa09e5a..cb0466eeb 100644 --- a/hooks/en/useEventEmitter/index.html +++ b/hooks/en/useEventEmitter/index.html @@ -5,7 +5,7 @@ useEventEmitter | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useEventEmitter

Sometimes it is difficult to pass events between multiple components. By using EventEmitter, this can be simplified.

To get an instance of EventEmitter, you can call useEventEmitter in React components.

If the component renders multiple times, the return value of useEventEmitter in every render process will stay unchanged and no extra EventEmitter instance will be created.

You can also create instances of the global sharing.

Code demonstration

API

const event = useEventEmitter<T>()
 
const event = useEventEmitter<T>()
 

Params

PropertyDescriptionTypeDefault
globalIs it globalbooleanfalse

Result

PropertyDescriptionType
emitSend an event notification(eventName?:string,val: T) => void
useSubscriptionSubscribe to the event(eventName?:string,callback: (val: T) => void) => void

Source

SourceDocsDemo

- + diff --git a/hooks/en/useEventListener/index.html b/hooks/en/useEventListener/index.html index 038bbc7a9..88b01872b 100644 --- a/hooks/en/useEventListener/index.html +++ b/hooks/en/useEventListener/index.html @@ -5,7 +5,7 @@ useEventListener | VueHook Plus - + @@ -28,7 +28,7 @@ options?: Options, );

Params

PropertyDescriptiontypedefault
eventNameEvent namestring-
handlerCallback function(ev: Event) => void-
optionsMore options(optional)Options-

Options

PropertyDescriptiontypedefault
targetDOM element or ref(() => Element) | Element | React.MutableRefObject<Element> | Window | Documentwindow
captureOptional, a Boolean indicating that events of this type will be dispatched to the registered listener before being dispatched to any EventTarget beneath it in the DOM tree.booleanfalse
onceOptional, A Boolean indicating that the listener should be invoked at most once after being added. If true, the listener would be automatically removed when invoked.booleanfalse
passiveOptional, A Boolean which, if true, indicates that the function specified by listener will never call preventDefault(). If a passive listener does call preventDefault(), the user agent will do nothing other than generate a console warning.boolean

Source

SourceDocsDemo

- + diff --git a/hooks/en/useExternal/index.html b/hooks/en/useExternal/index.html index dacbeaa2d..cf3828530 100644 --- a/hooks/en/useExternal/index.html +++ b/hooks/en/useExternal/index.html @@ -5,7 +5,7 @@ useExternal | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useExternal

Dynamically load JS or CSS, useExternal can ensure that the resource are globally unique.

Code demonstration

Basic Usage

Load CSS

API

const status = useExternal(path: string, options?: Options);
 
const status = useExternal(path: string, options?: Options);
 

Params

PropertyDescriptionTypeDefault
pathThe url of the external resourcesstring-

Result

PropertyDescriptionType
statusThe progress of loading the external resources, support unset, loading, ready, errorReadonly<Ref<UseExternalStatus>>

Options

PropertyDescriptionTypeDefault
typeThe type of extarnal resources which need to load, support js/css, if no type, it will deduced according to pathstring-
jsAttributes supported by scriptHTMLScriptElement-
cssAttributes supported by linkHTMLStyleElement-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useFavicon/index.html b/hooks/en/useFavicon/index.html index 4465fad87..e9f3a3ee9 100644 --- a/hooks/en/useFavicon/index.html +++ b/hooks/en/useFavicon/index.html @@ -5,7 +5,7 @@ useFavicon | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useFavicon

A hook that set the favicon of the page.

Code demonstration

API

useFavicon(href: string);
 
useFavicon(href: string);
 

Params

PropertyDescriptionTypeDefault
hreffavicon URL, support svg/png/ico/gif 后缀的图片Ref<string>-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useFetchs/index.html b/hooks/en/useFetchs/index.html index 2eb8421aa..3c1ac96ff 100644 --- a/hooks/en/useFetchs/index.html +++ b/hooks/en/useFetchs/index.html @@ -5,7 +5,7 @@ useFetchs | VueHook Plus - + @@ -24,7 +24,7 @@ fetchKey: params => string | number, })

Result

参数说明类型默认值
fetchsStatus of all requests collectedReadonly<FetchType<TData, TParams>>-
fetchRunFunctions that you need to run(...args) => void-

Params

参数说明类型默认值
serviceService functionUseRequestService<TData, ParamsType<TParams>>-
optionsAdditional Configuration ItemsuseRequest Options-
selfself options fetchKey(...args: ParamsType<TParams>) => string-

Options

Referring to the option of useRequest, note that fetchRun needs to be true in manual mode

PropertyDescriptionType
fetchKeyGet key, cacheKey for useRequest(...args) => string | number

Source

SourceDocsDemo

- + diff --git a/hooks/en/useFocusWithin/index.html b/hooks/en/useFocusWithin/index.html index e04a76cca..2ebaf74cd 100644 --- a/hooks/en/useFocusWithin/index.html +++ b/hooks/en/useFocusWithin/index.html @@ -5,7 +5,7 @@ useFocusWithin | VueHook Plus - + @@ -28,7 +28,7 @@ onChange, })

Params

PropertyDescriptionTypeDefault
targetDOM element or ref() => Element | Element | JSX.Element-
optionsMore configOptions-

Options

PropertyDescriptionTypeDefault
onFocusCallback to be executed on focus(e: FocusEvent) => void-
onBlurCallback to be executed on blur(e: FocusEvent) => void-
onChangeCallback to be executed on focus change(isFocusWithin: boolean) => void-

Result

PropertyDescriptionType
isFocusWithinWhether the focus is in the current areaRef<boolean>

Source

SourceDocsDemo

- + diff --git a/hooks/en/useFormatResult/index.html b/hooks/en/useFormatResult/index.html index 8dcb90e4b..5c7719440 100644 --- a/hooks/en/useFormatResult/index.html +++ b/hooks/en/useFormatResult/index.html @@ -5,7 +5,7 @@ useFormatResult | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useFormatResult

Format the data of hook.

Code demonstration

API

const formatData = useFormatResult(data, callback)
 
const formatData = useFormatResult(data, callback)
 

Argument

PropertyDescriptionTypeDefault
dataData that needs to be formattedTData\|Ref<TData>-
callbackFormatt function(data: TData) => FData-

Result

PropertyDescriptionType
formatDataThe formatted dataComputedRef<FData> | FData

Source

SourceDocsDemo

- + diff --git a/hooks/en/useFull/index.html b/hooks/en/useFull/index.html index 6b4998a34..788bc90e9 100644 --- a/hooks/en/useFull/index.html +++ b/hooks/en/useFull/index.html @@ -5,7 +5,7 @@ useFullscreen | VueHook Plus - + @@ -40,7 +40,7 @@ options?: Options );

Params

PropertyDescriptionType
targetDOM element or refElement
optionSettingOptions

Options

PropertyDescriptionTypeDefault
onExitExit full screen trigger() => void-
onEnterEnter full screen trigger() => void-
defaultElementDefault full screen elementElement | HTMLElementhtml

Result

PropertyDescriptionType
isFullscrenIs full screenReadonly<Ref<boolean>>
enterFullscreenEnter full screen() => void
exitFullscreenExit full screen() => void
toggleFullscreenToggle full screen() => void
isEnabledIs enable screenfullboolean

Source

SourceDocsDemo

- + diff --git a/hooks/en/useHover/index.html b/hooks/en/useHover/index.html index 41a157305..3c4d25504 100644 --- a/hooks/en/useHover/index.html +++ b/hooks/en/useHover/index.html @@ -5,7 +5,7 @@ useHover | VueHook Plus - + @@ -28,7 +28,7 @@ onChange, })

Params

PropertyDescriptionTypeDefault
targetDOM element or ref() => Element | Element | JSX.Element-
optionsMore configOptions-

Options

PropertyDescriptionTypeDefault
onEnterCallback to be executed on mouse hover() => void-
onLeaveCallback to be executed on mouse leave() => void-
onChangeCallback to be executed on hover change(isHovering: boolean) => void-

Result

PropertyDescriptionType
isHoveringWhether the element is being hoveredReadonly<Ref<boolean>>

Source

SourceDocsDemo

- + diff --git a/hooks/en/useImmer/index.html b/hooks/en/useImmer/index.html index 525337dc4..2c365044f 100644 --- a/hooks/en/useImmer/index.html +++ b/hooks/en/useImmer/index.html @@ -5,7 +5,7 @@ useImmer | VueHook Plus - + @@ -26,7 +26,7 @@

Auto Import

import { VueHooksPlusUseImmerResolver } from '@vue-hooks-plus/resolvers'
 
import { VueHooksPlusUseImmerResolver } from '@vue-hooks-plus/resolvers'
 

How to use

The hook is based on immer management status, immer will be installed to ensure normal work in the project

Independent installation @vue-hooks-plus/use-immer

Basic Usage

Params

PropertyDescriptionTypeDefault
stateShallowRefReadonly<ShallowRef<S>>-
updater-Updater<S>-

Options

参数说明类型默认值
initialValue-() => voidany

Source

SourceDocsDemo

- + diff --git a/hooks/en/useInViewport/index.html b/hooks/en/useInViewport/index.html index eab0cb177..e8bc81e9d 100644 --- a/hooks/en/useInViewport/index.html +++ b/hooks/en/useInViewport/index.html @@ -5,7 +5,7 @@ useInViewport | VueHook Plus - + @@ -26,7 +26,7 @@ options?: Options );

Params

PropertyDescriptionTypeDefault
targetDOM element or refElement | () => Element | MutableRefObject<Element>-
optionsSettingOptions-

Options

More information refer to Intersection Observer API

PropertyDescriptionTypeDefault
thresholdEither a single number or an array of numbers which indicate at what percentage of the target's visibility the ratio should be executednumber | number[]-
rootMarginMargin around the rootstring-
rootThe element that is used as the viewport for checking visibility of the target. Must be the ancestor of the target. Defaults to the browser viewport if not specified or if null.Element | Document | () => (Element/Document) | MutableRefObject<Element>-

Result

PropertyDescriptionType
inViewportIs visibleReadonly<Ref<boolean>> | undefined
ratioCurrent visible ratio, updated every time the node set by options.threshold is reachedReadonly<Ref<number>> | undefined

Source

SourceDocsDemo

- + diff --git a/hooks/en/useInfiniteScroll/index.html b/hooks/en/useInfiniteScroll/index.html index ff9779000..8928b55f7 100644 --- a/hooks/en/useInfiniteScroll/index.html +++ b/hooks/en/useInfiniteScroll/index.html @@ -5,7 +5,7 @@ useInfiniteScroll | VueHook Plus - + @@ -76,7 +76,7 @@ } );

Result

PropertyDescriptionType
dataThe data returned by the service, where the list attribute is the aggregated dataReadonly<Ref<TData>> | undefined
loadingIs the first request in progressComputedRef<boolean>
loadingMoreIs more data request in progressReadonly<Ref<boolean>>
noMoreWhether there is no more data, it will take effect after configuring options.isNoMoreComputedRef<boolean>
loadMoreLoad more data, it will automatically catch the exception, and handle it through options.onError() => void
loadMoreAsyncLoad more data, which is consistent with the behavior of loadMore, but returns Promise, so you need to handle the exception yourself() => Promise<TData>
reloadLoad the first page of data, it will automatically catch the exception, and handle it through options.onError() => void
reloadAsyncLoad the first page of data, which is consistent with the behavior of reload, but returns Promise, so you need to handle the exception yourself() => Promise<TData>
mutateModify data directly(data?: TData) => void
cancelIgnore the current Promise response() => void

Options

PropertyDescriptionTypeDefault
targetspecifies the parent element. If it exists, it will trigger the loadMore when scrolling to the bottom. Needs to work with isNoMore to know when there is no more data to load() => Element | Element | MutableRefObject<Element>-
isNoMoredetermines if there is no more data, the input parameter is the latest merged data(data?: TData) => boolean-
thresholdThe pixel threshold to the bottom for the scrolling to loadnumber100
reloadDepsWhen the content of the array changes, reload will be triggeredWatchSource | any[] |any-
manual
  • The default is false. That is, the service is automatically executed during initialization.
  • If set to true, you need to manually call run or runAsync to trigger execution
booleanfalse
onBeforeTriggered before service execution() => void-
onSuccessTriggered when service resolve(data: TData) => void-
onErrorTriggered when service reject(e: Error) => void-
onFinallyTriggered when service execution is complete(data?: TData, e?: Error) => void-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useInterval/index.html b/hooks/en/useInterval/index.html index 97bd56765..76bf6fdff 100644 --- a/hooks/en/useInterval/index.html +++ b/hooks/en/useInterval/index.html @@ -5,7 +5,7 @@ useInterval | VueHook Plus - + @@ -28,7 +28,7 @@ options?: Options ): fn: () => void;

Params

PropertyDescriptionType
fnThe function to be executed every delay milliseconds.() => void
delayThe time in milliseconds, the timer should delay in between executions of the specified function. The timer will be cancelled if delay is set to undefined.Ref<number>|number | undefined
optionsConfig of the interval behavior.Options

Options

PropertyDescriptionTypeDefault
immediateWhether the function should be executed immediately on first execution.booleanfalse

Result

PropertyDescriptionType
clearIntervalclear interval() => void

Source

SourceDocsDemo

- + diff --git a/hooks/en/useKeyPress/index.html b/hooks/en/useKeyPress/index.html index f6f3283b5..ae03155af 100644 --- a/hooks/en/useKeyPress/index.html +++ b/hooks/en/useKeyPress/index.html @@ -5,7 +5,7 @@ useKeyPress | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useKeyPress

Listen for the keyboard press, support key combinations, and support alias.

Basic usage

Combination keys

Exact match

API

const state = useKeyPress(target?: Target);
 
const state = useKeyPress(target?: Target);
 

Params

PropertyDescriptionType
keyFilterSupport keyCode、alias、combination keys、array、custom functionNumber | String | Number[]| String[] |(event: KeyboardEvent) => boolean
eventHandlerCallback function(event: KeyboardEvent) => void
optionadvanced optionsOptions

Options

PropertyDescriptionTypeDefault
eventsTrigger EventsEventListenerOrEventListenerObject-
targetDOM element or refHTMLElement | Document | Window-
exactMatchExact match. If set true, the event will only be trigger when the keys match exactly. For example, pressing [shif + c] will not trigger [c]Boolean-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useLocalStorageState/index.html b/hooks/en/useLocalStorageState/index.html index 02220ac81..871dc13c5 100644 --- a/hooks/en/useLocalStorageState/index.html +++ b/hooks/en/useLocalStorageState/index.html @@ -5,7 +5,7 @@ useLocalStorageState | VueHook Plus - + @@ -36,7 +36,7 @@ options: Options<T> ): [T?, (value?: T | ((previousState: T) => T)) => void];

Options

PropertyDescriptionTypeDefault
defaultValueDefault valueany | (() => any)-
serializerCustom serialization method(value: any) => stringJSON.stringify
deserializerCustom deserialization method(value: string) => anyJSON.parse

Result

PropertyDescriptionType
stateLocal Storage-valueRef<any | undefined>
setStateSet Storage valueSetState

Remark

useLocalStorageState will call serializer before write data to localStorage, and call deserializer once after read data.

Source

SourceDocsDemo

- + diff --git a/hooks/en/useLockFn/index.html b/hooks/en/useLockFn/index.html index c8c902c79..0e1bdcb95 100644 --- a/hooks/en/useLockFn/index.html +++ b/hooks/en/useLockFn/index.html @@ -5,7 +5,7 @@ useLockFn | VueHook Plus - + @@ -24,7 +24,7 @@ fn: (...args: P) => Promise<V> ): fn: (...args: P) => Promise<V | undefined>;

Result

PropertyDescriptionType
fnThe async function with lock(...args: any[]) => Promise<any>

Params

PropertyDescriptionTypeDefault
fnAn async function(...args: any[]) => Promise<any>-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useLongPress/index.html b/hooks/en/useLongPress/index.html index 4e781ac41..7c34bb2de 100644 --- a/hooks/en/useLongPress/index.html +++ b/hooks/en/useLongPress/index.html @@ -5,7 +5,7 @@ useLongPress | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useLongPress

Listen for a long press on an element.

Code demonstration

API

const { isPressing , pressingTime } = useLongPress(target: BasicTarget , options?: LongPressOptions)
 
const { isPressing , pressingTime } = useLongPress(target: BasicTarget , options?: LongPressOptions)
 

Result

PropertyDescriptionType
isPressingIndicates the current pressing state. If pressing, the value is true; otherwise it's false.Readonly<Ref<boolean>>
pressingTimeRepresents the duration of pressing (possibly in milliseconds). This value will only be updated during the pressing period.Readonly<Ref<number>>

Params

PropertyDescriptionTypeDefault
targetDOM element or ref() => Element | Element | MutableRefObject<Element>-
optionsAdditional configUseLongPressOptions-

DropOptions

PropertyDescriptionTypeDefault
delayTime in ms till longpress gets callednumber500
minUpdateTimeMinimum time interval in ms for updating the longpress eventnumber100
cancelOnMoveWhether to cancel the longpress event when mouse movebooleantrue
modifierslongpress event modifiersLongPressModifiers-

LongPressModifiers

PropertyDescriptionTypeDefault
stopstopPropagation eventboolean-
onceeventListener once optionboolean-
preventpreventDefault eventboolean-
captureeventListener capture optionboolean-
selfcheck event target element same as selfboolean-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useMap/index.html b/hooks/en/useMap/index.html index 9af9417ce..139aa0c9b 100644 --- a/hooks/en/useMap/index.html +++ b/hooks/en/useMap/index.html @@ -5,7 +5,7 @@ useMap | VueHook Plus - + @@ -38,7 +38,7 @@ } ] = useMap(initialValue?: Iterable<[any, any]>);

Result

PropertyDescriptionType
mapMap objectReadonly<Ref<Map>>
setAdd item(key: any, value: any) => void
getGet item(key: any) => MapItem
setAllSet a new Map(newMap: Iterable<[any, any]>) => void
removeRemove key(key: any) => void
resetReset to default() => void
clearclear Map() => void

Params

PropertyDescriptionTypeDefault
initialValueOptional, set default valueIterable<[any, any]>-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useMedia/index.html b/hooks/en/useMedia/index.html index 6104382a8..7445845f7 100644 --- a/hooks/en/useMedia/index.html +++ b/hooks/en/useMedia/index.html @@ -5,7 +5,7 @@ useMedia | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useMedia

Hook using media queries.

Code demonstration

API

const value = useMedia(['(min-width: 320px)'], [true], false)
 
const value = useMedia(['(min-width: 320px)'], [true], false)
 

Options

PropertyDescriptionTypeDefault
queriesMedia to query for an array of objectsstring[]-
valuesThe default value for each media query objectboolean[]-
defaultValueDefaultValueboolean

Result

PropertyDescriptionType
valueCompliance with the queryReadonly<Ref<boolean>>

Source

SourceDocsDemo

- + diff --git a/hooks/en/useMouse/index.html b/hooks/en/useMouse/index.html index bda7fefe1..403817953 100644 --- a/hooks/en/useMouse/index.html +++ b/hooks/en/useMouse/index.html @@ -5,7 +5,7 @@ useMouse | VueHook Plus - + @@ -46,7 +46,7 @@ elementPosY: number, } = useMouse(target?: Target);

Params

PropertyDescriptionType
targetDOM element or refElement | () => Element | JSX.Element

Result

PropertyDescriptionType
screenXPosition left relative to the top left of the physical screen/monitornumber
screenYPosition top relative to the top left of the physical screen/monitornumber
clientXPosition left relative to the upper left edge of the content areanumber
clientYPosition top relative to the upper left edge of the content areanumber
pageXPosition left relative to the top left of the fully rendered content area in the browsernumber
pageYPosition top relative to the top left of the fully rendered content area in the browsernumber
elementXPosition left relative to the upper left edge of the target elementnumber
elementYPosition top relative to the upper left edge of the target elementnumber
elementHTarget element heightnumber
elementWTarget element widthnumber
elementPosXThe position of the target element left relative to the top left of the fully rendered content area in the browsernumber
elementPosYThe position of the target element top relative to the top left of the fully rendered content area in the browsernumber

Source

SourceDocsDemo

- + diff --git a/hooks/en/useMutationObserver/index.html b/hooks/en/useMutationObserver/index.html index 5bc7d61da..1df05087f 100644 --- a/hooks/en/useMutationObserver/index.html +++ b/hooks/en/useMutationObserver/index.html @@ -5,7 +5,7 @@ useMutationObserver | VueHook Plus - + @@ -28,7 +28,7 @@ options?: MutationObserverInit, );

Params

PropertyDescriptionTypeDefault
targetDOM element or ref() => Element | Element | MutableRefObject<Element>-
callbackThe callback function(mutations: MutationRecord[], observer: MutationObserver) => void-
optionsSettingMutationObserverInit-

Options

For options, please refer to MutationObserver

Source

SourceDocsDemo

- + diff --git a/hooks/en/useNetwork/index.html b/hooks/en/useNetwork/index.html index 775b90579..4439d9a5b 100644 --- a/hooks/en/useNetwork/index.html +++ b/hooks/en/useNetwork/index.html @@ -5,7 +5,7 @@ useNetwork | VueHook Plus - + @@ -40,7 +40,7 @@ } const result: NetworkState = useNetwork()

Result

PropertyDescriptionType
onlineWhether connected to networkboolean
sinceonline latest update timeDate
rttThe effective round-trip time estimate in millisecondsnumber
typeThe connection type that the user agent is usingbluetooth | cellular | ethernet | none | wifi | wimax | other | unknown
downlinkThe effective bandwidth estimate in megabits per second,number
downlinkMaxAn upper bound on the downlink speed of the first network hopnumber
saveDataWhether the user agent has set the option to reduce data usageboolean
effectiveTypeThe effective connection typeslow-2g | 2g | 3g | 4g

Source

SourceDocsDemo

- + diff --git a/hooks/en/usePreview/index.html b/hooks/en/usePreview/index.html index 23c7b8ed6..880935b6e 100644 --- a/hooks/en/usePreview/index.html +++ b/hooks/en/usePreview/index.html @@ -5,7 +5,7 @@ usePreview | VueHook Plus - + @@ -85,7 +85,7 @@

API

const { container } = usePreview(target)
 
const { container } = usePreview(target)
 

Params

PropertyDescriptionType
targetDOM element or refVueComponent | string | JSX.Element

Result

PropertyDescriptionType
containerDOM element or refElement | () => Element | JSX.Element

Source

SourceDocsDemo

- + diff --git a/hooks/en/usePrevious/index.html b/hooks/en/usePrevious/index.html index c66278b44..eb277ff4d 100644 --- a/hooks/en/usePrevious/index.html +++ b/hooks/en/usePrevious/index.html @@ -5,7 +5,7 @@ usePrevious | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

usePrevious

A Hook to return the previous state.

Basic usage

Custom shouldUpdate function

Result

PropertyDescriptionType
previousRefThe previous valueReadonly<Ref<T>>

Params

PropertyDescriptionTypeDefault Value
currentRefThe state that needs to be trackedRef<T> | ComputedRef<T>-
shouldUpdateOptional. Customize whether the state value should be updated(prev: T | undefined, next: T) => boolean(a, b) => a !== b

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/basic/index.html b/hooks/en/useRequest/basic/index.html index 19f361fbd..ee97e6d1d 100644 --- a/hooks/en/useRequest/basic/index.html +++ b/hooks/en/useRequest/basic/index.html @@ -5,7 +5,7 @@ useRequest Basic usage | VueHook Plus - + @@ -92,7 +92,7 @@ } );

Result

PropertyDescriptionType
dataData returned by serviceReadonly<Ref<TData>> | undefined
errorException thrown by serviceReadonly<Ref<Error>> | undefined
loadingIs the service being executedReadonly<Ref<boolean>>
paramsAn array of parameters for the service being executed. For example, you triggered run(1, 2, 3), then params is equal to [1, 2, 3]Readonly<Ref<TParams | []>>
run
  • Manually trigger the execution of the service, and the parameters will be passed to the service
  • Automatic handling of exceptions, feedback through onError
(...params: TParams) => void
runAsyncThe usage is the same as run, but it returns a Promise, so you need to handle the exception yourself.(...params: TParams) => Promise<TData>
refreshUse the last params, call run again() => void
refreshAsyncUse the last params, call runAsync again() => Promise<TData>
mutateMutate data directly(data?: TData | ((oldData?: TData) => (TData | undefined))) => void
cancelIgnore the current promise response() => void

Options

PropertyDescriptionTypeDefault
initialDataInit dataTData | undefined
manual
  • The default is false. That is, the service is automatically executed during initialization.
  • If set to true, you need to manually call run or runAsync to trigger execution.
booleanfalse
defaultParamsThe parameters passed to the service at the first default executionTParams-
formatResultFormat the request results,v1 which recommend to use useFormatResult(response: TData) => FormatData-
onBeforeTriggered before service execution(params: TParams) => void-
onSuccessTriggered when service resolve(data: TData, params: TParams) => void-
onErrorTriggered when service reject(e: Error, params: TParams) => void-
onFinallyTriggered when service execution is complete(params: TParams, data?: TData, e?: Error) => void-

🛸 PRO

Above we have introduced the most basic functionalities of useRequest, and then we will introduce some more advanced functionalities.

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/cache/index.html b/hooks/en/useRequest/cache/index.html index cfde87123..ce3701c83 100644 --- a/hooks/en/useRequest/cache/index.html +++ b/hooks/en/useRequest/cache/index.html @@ -5,7 +5,7 @@ Cache & SWR | VueHook Plus - + @@ -32,7 +32,7 @@
import { clearCache } from 'vue-hooks-plus/es/useRequest';
 clearCache(cacheKey?: string | string[]);
 
  1. Support clearing a single cache, or a group of caches
  2. If cacheKey is empty, all cached data will be cleared

Remark

  • Only successful request data will be cached
  • Cached data includes data and params

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/debounce/index.html b/hooks/en/useRequest/debounce/index.html index 95427a4fd..6597e2986 100644 --- a/hooks/en/useRequest/debounce/index.html +++ b/hooks/en/useRequest/debounce/index.html @@ -5,7 +5,7 @@ Debounce | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

Debounce

Enter the debounce mode by setting options.debounceWait. At this time, if run or runAsync is triggered frequently, the request will be executed with the debounce strategy.

Code demonstration

Options

The usage and effect of all debounce property are the same as lodash.debounce

PropertyDescriptionTypeDefault Value
debounceWaitDebounce delay time, in milliseconds. After setting, enter the debounce modenumber-
debounceLeadingExecute the request before the delay startsboolean|Ref<boolean>false
debounceTrailingExecute the request after the delay endsboolean|Ref<boolean>true
debounceMaxWaitThe maximum time request is allowed to be delayed before it’s executednumber|Ref<number>-

Remark

  • options.debounceLeading support dynamic changes.
  • options.debounceTrailing support dynamic changes.
  • options.debounceMaxWait support dynamic changes.
  • runAsync will return a Promise when it is actually executed. When it is not executed, there will be no return.
  • cancel can abort a function waiting to be executed.

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/devtools/index.html b/hooks/en/useRequest/devtools/index.html index 082b1624d..806d05ecd 100644 --- a/hooks/en/useRequest/devtools/index.html +++ b/hooks/en/useRequest/devtools/index.html @@ -5,7 +5,7 @@ DevTools | VueHook Plus - + @@ -26,7 +26,7 @@

Using in .vue

const { data, loading } = useRequest(() => getUsername({ desc: 'good' }), { debugKey: 'demo' })
 
const { data, loading } = useRequest(() => getUsername({ desc: 'good' }), { debugKey: 'demo' })
 

Use debugKey to create a unique identifier and enable it.

You're done! Open the browser Vue plugin to use it 🍺

Alt

- + diff --git a/hooks/en/useRequest/fetchs/index.html b/hooks/en/useRequest/fetchs/index.html index 80a0c82f0..c31e3e42c 100644 --- a/hooks/en/useRequest/fetchs/index.html +++ b/hooks/en/useRequest/fetchs/index.html @@ -5,7 +5,7 @@ Look 👇 useFetchs | VueHook Plus - + @@ -17,7 +17,7 @@ - + diff --git a/hooks/en/useRequest/formatResult/index.html b/hooks/en/useRequest/formatResult/index.html index a907cb747..9f964937a 100644 --- a/hooks/en/useRequest/formatResult/index.html +++ b/hooks/en/useRequest/formatResult/index.html @@ -5,7 +5,7 @@ Format the request result | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

Format the request result

v1 use

Since v1 version useRequest needs to guarantee a good plug-in system, format is too invasive for the system, the formatting here is useFormatResult, format data to useFormatResult after the request data is completed, useFormatResult can well support typescript type prompt.

Jump to useFormatResult

v2 use

It now supports ts types very well.

Options

PropertyDescriptionTypeDefault
formatResultformat the request result(response: TData) => FormatData-
- + diff --git a/hooks/en/useRequest/global/index.html b/hooks/en/useRequest/global/index.html index 0d7fbc8ca..e945e585f 100644 --- a/hooks/en/useRequest/global/index.html +++ b/hooks/en/useRequest/global/index.html @@ -5,7 +5,7 @@ Global Option useRequestProvider v1.6.1 | VueHook Plus - + @@ -24,7 +24,7 @@ useRequestProvider({ ...options })

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/guide/index.html b/hooks/en/useRequest/guide/index.html index 0f5255f75..e226b2ad4 100644 --- a/hooks/en/useRequest/guide/index.html +++ b/hooks/en/useRequest/guide/index.html @@ -5,7 +5,7 @@ 📐 useRequest specification | VueHook Plus - + @@ -209,7 +209,7 @@ const { data } = useRequest(() => getUserInfo('666')) </script>

END

The above is a set of rigorous and reliable request scheme, which can also be used and changed according to their own needs.

Source

Docs

- + diff --git a/hooks/en/useRequest/index.html b/hooks/en/useRequest/index.html index d263cd387..ea68d10b2 100644 --- a/hooks/en/useRequest/index.html +++ b/hooks/en/useRequest/index.html @@ -5,7 +5,7 @@ Quick Start | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

Quick Start

🚀 useRequest

With a strong ability to manage network requests, Hook has a flying experience


useRequest Through the plug-in organization code, the core code is easy to understand, and can be easily expanded to more advanced functions. Capacity is now available to include

  • Automatic/manual request
  • Polling
  • Debounce
  • Throttle
  • Refresh on window focus
  • Error retry
  • Loading delay
  • SWR(stale-while-revalidate)
  • Caching
  • InfiniteScroll
  • Fetchs
  • Plugins

Default request

By default, the first parameter of useRequest is an asynchronous function, which is automatically executed when the component is initialized. At the same time, it automatically manages the status of loading, data, error of the asynchronous function.

const { data, error, loading } = useRequest(service)
 
const { data, error, loading } = useRequest(service)
 

Source

DocsDemo

- + diff --git a/hooks/en/useRequest/loadingDelay/index.html b/hooks/en/useRequest/loadingDelay/index.html index e0850a29d..f41ef1936 100644 --- a/hooks/en/useRequest/loadingDelay/index.html +++ b/hooks/en/useRequest/loadingDelay/index.html @@ -5,7 +5,7 @@ Loading Delay | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

Loading Delay

By setting options.loadingDelay, you can delay the time when loading turns to true, effectively prevent UI flashing.

Code demonstration

Basic usage

If you hit run quickly, the data without loadingDelay will flash.

API

PropertyDescriptionTypeDefault
loadingDelaySet the delay time for loading to become truenumber | Ref<number>0

Remark

options.loadingDelay supports dynamic changes.

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/middleware/index.html b/hooks/en/useRequest/middleware/index.html index 1f56b4a75..9147e36fe 100644 --- a/hooks/en/useRequest/middleware/index.html +++ b/hooks/en/useRequest/middleware/index.html @@ -5,7 +5,7 @@ Middleware Beta | VueHook Plus - + @@ -42,7 +42,7 @@ use: [middleware], })

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/plugin/index.html b/hooks/en/useRequest/plugin/index.html index afec982a8..dac863861 100644 --- a/hooks/en/useRequest/plugin/index.html +++ b/hooks/en/useRequest/plugin/index.html @@ -5,7 +5,7 @@ Plug-in design specification | VueHook Plus - + @@ -194,7 +194,7 @@ [useFormatterPlugin, ...otherPlugins], )

Options

PropertyDescriptionTypeDefault
PluginCustom plugin(fetchInstance, option) => UseRequestPluginReturn-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/plugins/broadcastChannel/index.html b/hooks/en/useRequest/plugins/broadcastChannel/index.html index 2884a6247..1e97f5168 100644 --- a/hooks/en/useRequest/plugins/broadcastChannel/index.html +++ b/hooks/en/useRequest/plugins/broadcastChannel/index.html @@ -5,7 +5,7 @@ BroadcastChannel(Experimental) | VueHook Plus - + @@ -61,7 +61,7 @@ [useBroadcastChannelPlugin], )

Options

PropertyDescriptionType
broadcastChannelRequired, the name of the channel, which must be the same as the channel name to receive the same frequency data.string
broadcastChannelKeyNon mandatory identifier used to distinguish different application types.string
broadcastChannelOptionsThe configuration item for broadcast-channel has a default configuration of {webWorkerSupport: false}BroadcastChannelOptions
customPostMessageUser defined collection and sending of data. The default sending method is type, data, param, error(potMessage: (msg?: any)=>Promise<void>, channel?: BroadcastChannel) => void
onBroadcastChannelMonitor and collect the same frequency data sent by other applications (including multiple windows of the same application)(value?: MessageType, channel?: BroadcastChannel, setFetchState?: Fetch<any, []>['setFetchState']) => void

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/plugins/fetchsing/index.html b/hooks/en/useRequest/plugins/fetchsing/index.html index 1ab33d9f6..d6593fbba 100644 --- a/hooks/en/useRequest/plugins/fetchsing/index.html +++ b/hooks/en/useRequest/plugins/fetchsing/index.html @@ -5,7 +5,7 @@ UseRequest Fetching Plugin | VueHook Plus - + @@ -57,7 +57,7 @@ [useFetchingPlugin], )

Options

PropertyDescriptionType
fetchingKeyThe identification key of the status needs to be collected, and if it exists, it will be collected by the status
(params: any[]) => string
onFetchingIntermediate state function callback, the first parameter current is the current state of itself, and the second parameter record is all states(current:any,record:Record<string,any>) => void
isFetchingOfficial built-in function to determine whether all request statuses have been completed(_isFetching: boolean) => void

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/polling/index.html b/hooks/en/useRequest/polling/index.html index bb2a64b8d..063e3dab9 100644 --- a/hooks/en/useRequest/polling/index.html +++ b/hooks/en/useRequest/polling/index.html @@ -5,7 +5,7 @@ Polling | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

Polling

By setting options.pollingInterval, enter the polling mode, useRequest will periodically trigger service execution.

Code demonstration

Return

PropertyDescriptionType
runStart polling(...params: TParams) => void
runAsyncStart polling(...params: TParams) => Promise<TData>
cancelStop polling() => void

Options

PropertyDescriptionTypeDefault
pollingIntervalPolling interval, in milliseconds. If the value is greater than 0, the polling mode is activated.number|Ref<number>0
pollingWhenHiddenWhether to continue polling when the page is hidden. If set to false, polling will be temporarily paused when the page is hidden, and resume when the page is visible again.booleantrue
pollingErrorRetryCountNumber of polling error retries. If set to -1, an infinite number of timesnumber-1

Remark

  • options.pollingInterval support dynamic changes.
  • options.pollingWhenHidden support dynamic changes.
  • If you set options.manual = true, the initialization will not start polling, you need start it by run/runAsync.
  • The polling logic is to wait for pollingInterval time after each request is completed, and then initiate the next request.

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/ready/index.html b/hooks/en/useRequest/ready/index.html index 352a38306..8f417a962 100644 --- a/hooks/en/useRequest/ready/index.html +++ b/hooks/en/useRequest/ready/index.html @@ -5,7 +5,7 @@ Ready | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

Ready

useRequest provides an options.ready, when its value is false, the request will never be sent.

  • 1、In the automatic mode of manual=false, every time ready changes from false to true, a request will be automatically executed with the parameter options.defaultParams.
  • 2、When manual=true manual request mode, as long as ready=false, the request triggered by run/runAsync will not be executed.

Code demonstration

Options

PropertyDescriptionTypeDefault
readyIs the current request readyboolean|Ref<boolean>true

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/refreshDeps/index.html b/hooks/en/useRequest/refreshDeps/index.html index 7634f16e2..bd8b9dcde 100644 --- a/hooks/en/useRequest/refreshDeps/index.html +++ b/hooks/en/useRequest/refreshDeps/index.html @@ -5,7 +5,7 @@ RefreshDeps | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content

RefreshDeps

useRequest provides an options.refreshDeps,Instead of watch, it will listen for changes in responsive values and reissue requests when the values change .

remark

When the automatic, mode manual is not true and refreshDeps will take effect.

Manual collection of dependencies

When refreshDeps passes in an array of responsive objects, when its value changes, the request will be retriggered.

Automatically collect dependencies v1.6.0

When refreshDeps is passed in true, useRequest will automatically collect the response object parameters in the function parameters, as long as the response object in the parameters changes, it will carry the latest value to re-initiate the request.

API

Options

PropertyDescriptionTypeDefault
refreshDeps
  • Dependent on responsive objects, and the watch incoming listener object usage for vue
  • If set to true, the dependency execution is automatically collected and is also supported with ready
boolean | WatchSource[]-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/refreshOnWindowFocus/index.html b/hooks/en/useRequest/refreshOnWindowFocus/index.html index f6e1a2c42..a57963446 100644 --- a/hooks/en/useRequest/refreshOnWindowFocus/index.html +++ b/hooks/en/useRequest/refreshOnWindowFocus/index.html @@ -5,7 +5,7 @@ RefreshOnWindowFocus | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

RefreshOnWindowFocus

By setting options.refreshOnWindowFocus, the request will be refreshed when the browser is refocus and revisible.

Code demonstration

API

Options

PropertyDescriptionTypeDefault
refreshOnWindowFocusWhether to re-initiate the request when the screen refocus or revisible.boolean|Ref<boolean>false
focusTimespanRe-request interval, in millisecondsnumber| Ref<number>5000

Remark

  • options.refreshOnWindowFocus support dynamic changes.
  • options.focusTimespan support dynamic changes.
  • Listen for browser events visibilitychange and focus.

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/retry/index.html b/hooks/en/useRequest/retry/index.html index ea7811c52..22235489a 100644 --- a/hooks/en/useRequest/retry/index.html +++ b/hooks/en/useRequest/retry/index.html @@ -5,7 +5,7 @@ Error Retry | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

Error Retry

By setting options.retryCount, set the number of error retries, useRequest will retry after it fails.

Code demonstration

API

Options

PropertyDescriptionTypeDefault
retryCountThe number of retries. If set to -1, it will try again indefinitely.number-
retryInterval
  • Retry interval in milliseconds.
  • If not set, the simple exponential backoff algorithm will be used by default, taking 1000 * 2 ** retryCount, that is, waiting for 2s for the first retry, and 4s for the second retry. By analogy, if it is greater than 30s, take 30s
number-

Remark

  • cancel can cancel the ongoing retry behavior.

Source

SourceDocsDemo

- + diff --git a/hooks/en/useRequest/scroll/index.html b/hooks/en/useRequest/scroll/index.html index 7ea9feb16..a47cd9ae3 100644 --- a/hooks/en/useRequest/scroll/index.html +++ b/hooks/en/useRequest/scroll/index.html @@ -5,7 +5,7 @@ Look 👇 useInfiniteScroll | VueHook Plus - + @@ -17,7 +17,7 @@ - + diff --git a/hooks/en/useRequest/throttle/index.html b/hooks/en/useRequest/throttle/index.html index a081d11d2..007e1250c 100644 --- a/hooks/en/useRequest/throttle/index.html +++ b/hooks/en/useRequest/throttle/index.html @@ -5,7 +5,7 @@ Throttle | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

Throttle

useRequest It provides a options.throttleWait parameter into throttling mode, and if the run or the runAsync is frequently triggered, the request is made by throttling policy.

Basic usage

Options

The usage and effects of all throttle property are the same as lodash.throttle

PropertyDescriptionTypeDefault Value
throttleWaitThrottle wait time, in milliseconds. After setting, enter the throttle modenumber-
throttleLeadingExecute the request before throttling startsboolean|Ref<boolean>true
throttleTrailingExecute the request after throttling endsboolean|Ref<boolean>true

Remark

  • options.throttleWait support dynamic changes.
  • options.throttleLeading support dynamic changes.
  • options.throttleTrailing support dynamic changes.
  • runAsync will return a Promise when it is actually executed. When it is not executed, there will be no return.
  • cancel can abort a function waiting to be executed.

Source

SourceDocsDemo

- + diff --git a/hooks/en/useResizeObserver/index.html b/hooks/en/useResizeObserver/index.html index b6810fc3c..ba03cd537 100644 --- a/hooks/en/useResizeObserver/index.html +++ b/hooks/en/useResizeObserver/index.html @@ -5,7 +5,7 @@ useResizeObserver | VueHook Plus - + @@ -24,7 +24,7 @@ box: UseResizeObserverOptions, })

Params

参数说明类型默认值
targetDOM 节点或者 Ref 对象() => Element | Element | JSX.Element-
options额外的配置项UseResizeObserverOptions-

Options

参数说明类型默认值
box盒模型模式ResizeObserverBoxOptionscontent-box

Source

SourceDocsDemo

- + diff --git a/hooks/en/useScroll/index.html b/hooks/en/useScroll/index.html index ab2e05f01..469f7c21d 100644 --- a/hooks/en/useScroll/index.html +++ b/hooks/en/useScroll/index.html @@ -5,7 +5,7 @@ useScroll | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useScroll

Get the scroll position of an element.

Code demonstration

Basic Usage

Detect Whole Page Scroll

Control listen on scroll status

API

const position = useScroll(target, shouldUpdate)
 
const position = useScroll(target, shouldUpdate)
 

Params

PropertyDescriptionTypeDefault
targetDOM element or ref objectElement | Document | (() => Element) | JSX.Elementdocument
shouldUpdateWhether update position({ top: number, left: number }) => boolean-

Result

PropertyDescriptionType
positionThe current scroll position of the element.Readonly<Ref<{ left: number, top: number } | undefined>>

Source

SourceDocsDemo

- + diff --git a/hooks/en/useSessionStorageState/index.html b/hooks/en/useSessionStorageState/index.html index 09485f38e..b761b56c1 100644 --- a/hooks/en/useSessionStorageState/index.html +++ b/hooks/en/useSessionStorageState/index.html @@ -5,7 +5,7 @@ useSessionStorageState | VueHook Plus - + @@ -17,7 +17,7 @@ - + diff --git a/hooks/en/useSet/index.html b/hooks/en/useSet/index.html index 4d4044dc6..d127e8d7f 100644 --- a/hooks/en/useSet/index.html +++ b/hooks/en/useSet/index.html @@ -5,7 +5,7 @@ useSet | VueHook Plus - + @@ -38,7 +38,7 @@ } ] = useSet(initialValue?: Iterable<K>);

Result

PropertyDescriptionType
setSet objectReadonly<Ref<Set>>
addAdd item(key: T) => void
removeRemove item(key: T) => void
clearClear Set() => void
hasSet has(key: T) => void
resetReset to default() => void

Params

PropertyDescriptionTypeDefault
initialValueOptional, set default valueIterable<K>-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useSetState/index.html b/hooks/en/useSetState/index.html index b51eeb4be..db196b337 100644 --- a/hooks/en/useSetState/index.html +++ b/hooks/en/useSetState/index.html @@ -5,12 +5,12 @@ useSetState | VueHook Plus - + - + - + @@ -30,7 +30,7 @@ (patch: Record<string, any>) => void ]

Source

SourceDocsDemo

- + diff --git a/hooks/en/useSize/index.html b/hooks/en/useSize/index.html index d79dfde78..9954c13cb 100644 --- a/hooks/en/useSize/index.html +++ b/hooks/en/useSize/index.html @@ -5,7 +5,7 @@ useSize | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useSize

A hook that observes size change of an element.

Code demonstration

Default usage

Pass in the DOM element

API

const size = useSize(target)
 
const size = useSize(target)
 

Params

PropertyDescriptionTypeDefault
targetDOM element or ref objectElement | (() => Element) | JSX.Element-

Result

PropertyDescriptionType
sizeSize of the elementReadonly《Ref<{ width: number, height: number } | undefined>>

Source

SourceDocsDemo

- + diff --git a/hooks/en/useThrottle/index.html b/hooks/en/useThrottle/index.html index 6af4e0b1f..4662c46af 100644 --- a/hooks/en/useThrottle/index.html +++ b/hooks/en/useThrottle/index.html @@ -5,7 +5,7 @@ useThrottle | VueHook Plus - + @@ -26,7 +26,7 @@ options?: Options );

Params

PropertyDescriptionTypeDefault
valueThe value to throttle.Ref<any>-
optionsConfig for the throttle behaviors.Options-

Options

PropertyDescriptionTypeDefault
waitThe number of milliseconds to delay.number1000
leadingSpecify invoking on the leading edge of the timeout.booleantrue
trailingSpecify invoking on the trailing edge of the timeout.booleantrue

Source

SourceDocsDemo

- + diff --git a/hooks/en/useThrottleFn/index.html b/hooks/en/useThrottleFn/index.html index deb2ee272..388bc59d5 100644 --- a/hooks/en/useThrottleFn/index.html +++ b/hooks/en/useThrottleFn/index.html @@ -5,7 +5,7 @@ useThrottleFn | VueHook Plus - + @@ -34,7 +34,7 @@ options?: Options );

Params

PropertyDescriptionTypeDefault
fnThe function to throttle.(...args: any[]) => any-
optionsConfig for the throttle behaviorsOptions-

Options

PropertyDescriptionTypeDefault
waitThe number of milliseconds to delay.number1000
leadingSpecify invoking on the leading edge of the timeout.booleantrue
trailingSpecify invoking on the trailing edge of the timeout.booleantrue

Result

PropertyDescriptionType
runInvoke and pass parameters to fn.(...args: any[]) => any
cancelCancel the invocation of currently throttled function.() => void
flushImmediately invoke currently throttled function() => void

Source

SourceDocsDemo

- + diff --git a/hooks/en/useTimeout/index.html b/hooks/en/useTimeout/index.html index fb7433018..30c828215 100644 --- a/hooks/en/useTimeout/index.html +++ b/hooks/en/useTimeout/index.html @@ -5,7 +5,7 @@ useTimeout | VueHook Plus - + @@ -32,7 +32,7 @@ } ): fn: () => void;

Params

PropertyDescriptionType
fnThe function to be executed after delay milliseconds.() => void
delayThe number of milliseconds to wait before executing the function. The timer will be cancelled if delay is Ref<number | undefined >|number | undefined
immediateWhether the function should be executed immediately on first executionboolean

Result

PropertyDescriptionType
clearTimeoutclear timeout() => void

Source

SourceDocsDemo

- + diff --git a/hooks/en/useTitle/index.html b/hooks/en/useTitle/index.html index 19bb60464..b4cfd29b4 100644 --- a/hooks/en/useTitle/index.html +++ b/hooks/en/useTitle/index.html @@ -5,7 +5,7 @@ useTitle | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useTitle

A hook that set title of the page.

代码演示

API

useTitle(title: string, options?: Options);
 
useTitle(title: string, options?: Options);
 

Params

PropertyDescriptionTypeDefault
titlePage titleRef<string>-

Options

PropertyDescriptionTypeDefault
restoreOnUnmountWhether to restore the previous page title when the component is unmountedbooleanfalse

Source

SourceDocsDemo

- + diff --git a/hooks/en/useToggle/index.html b/hooks/en/useToggle/index.html index 21b0932ae..e9081aee4 100644 --- a/hooks/en/useToggle/index.html +++ b/hooks/en/useToggle/index.html @@ -5,7 +5,7 @@ useToggle | VueHook Plus - + @@ -24,7 +24,7 @@ const [state, { toggle, set, setLeft, setRight }] = useToggle<T>(defaultValue: T); const [state, { toggle, set, setLeft, setRight }] = useToggle<T, U>(defaultValue: T, reverseValue: U);

Params

PropertyDescriptionTypeDefault
defaultValueThe default value. OptionalTfalse
reverseValueThe reverse value. OptionalU-

Result

PropertyDescriptionType
stateCurrent stateReadonly<Ref<any>>
actionsA set of methods to update state valueActions

Actions

PropertyDescriptionType
toggleToggle state() => void
setSet state(state: T | U) => void
setLeftSet state to defaultValue() => void
setRightSet state to reverseValue if reverseValue is available. Otherwise set it to the reverse of defaultValue() => void

Source

SourceDocsDemo

- + diff --git a/hooks/en/useTrackedEffect/index.html b/hooks/en/useTrackedEffect/index.html index 70a71ba20..e94e391f7 100644 --- a/hooks/en/useTrackedEffect/index.html +++ b/hooks/en/useTrackedEffect/index.html @@ -5,7 +5,7 @@ useTrackedEffect | VueHook Plus - + @@ -26,7 +26,7 @@ deps?: deps, )

Source

SourceDocsDemo

- + diff --git a/hooks/en/useUpdate/index.html b/hooks/en/useUpdate/index.html index ee0f69dfc..159a0dc0b 100644 --- a/hooks/en/useUpdate/index.html +++ b/hooks/en/useUpdate/index.html @@ -5,7 +5,7 @@ useUpdate | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useUpdate

Used to simulate and rerender the page

Code demonstration

Default Usage

Advanced usage

API

const update = useUpdate()
 
const update = useUpdate()
 

Remark

By changing the variable, listening to this variable to achieve the simulated effect

Source

SourceDocsDemo

- + diff --git a/hooks/en/useUrlState/index.html b/hooks/en/useUrlState/index.html index 1e8eaad4c..593b2c801 100644 --- a/hooks/en/useUrlState/index.html +++ b/hooks/en/useUrlState/index.html @@ -5,7 +5,7 @@ useUrlState | VueHook Plus - + @@ -34,7 +34,7 @@ localStorageKey?: string }

Params

PropertyDescriptionTypeDefault
initialStatedefaultS | () => S-
optionsWhen setting localStorageKey, if url has no parameter, the value of localStorage is used
UseUrlStateOptions-routerPushFn

Result

PropertyDescriptionType
stateUrl query object-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useVirtualList/index.html b/hooks/en/useVirtualList/index.html index 7872b8a80..0c73b733d 100644 --- a/hooks/en/useVirtualList/index.html +++ b/hooks/en/useVirtualList/index.html @@ -5,7 +5,7 @@ useVirtualList | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useVirtualList

A hook that allows you to use virtual list to render huge chunks of list data.

Code demonstration

Default usage

Dynamic item height

API

import { useVirtualList } from 'vue-hooks-plus'
 
import { useVirtualList } from 'vue-hooks-plus'
 

Params

PropertyDescriptionTypeDefault
listThe original list that contains a lot of data entriesRef<T[]>[]
optionsconfigOptions-

Options

PropertyDescriptionTypeDefault
wrapperTargetnner Container,DOM element or refRef<TargetValue<HTMLElement>>-
itemHeightItem height, accept a pixel value or a function that returns the height`number((index: number, data: T) => number)`
overscanThe extra buffer items outside of the view areanumber5

Result

参数说明类型默认值
listThe current portion of data need to be rendered to DOMRef<{ data: T, index: number }[]>-
refOutter Container,support DOM element or refRef<TargetValue<HTMLElement>>-
onScrollScroll to specific index(e: any) => void-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useWebSocket/index.html b/hooks/en/useWebSocket/index.html index 33893094e..c8e447e14 100644 --- a/hooks/en/useWebSocket/index.html +++ b/hooks/en/useWebSocket/index.html @@ -5,7 +5,7 @@ useWebSocket | VueHook Plus - + @@ -72,7 +72,7 @@ useWebSocket(socketUrl: string, options?: Options): Result;

Params

PropertyDescriptionTypeDefault
socketUrlRequired, webSocket urlstring-
optionsconnect the configuration itemOptions-

Options

PropertyDescriptionTypeDefault
onOpenThe webSocket connect callback(event: WebSocketEventMap['open'], instance: WebSocket) => void-
onCloseWebSocket close callback(event: WebSocketEventMap['close'], instance: WebSocket) => void-
onMessageWebSocket receive message callback(message: WebSocketEventMap['message'], instance: WebSocket) => void-
onErrorWebSocket error callback(event: WebSocketEventMap['error'], instance: WebSocket) => void-
reconnectLimitRetry timesnumber3
reconnectIntervalRetry interval(ms)number3000
manualManually starts connectionbooleanfalse
protocolsSub protocolsstring | string[]-

Result

PropertyDescriptionType
latestMessageLatest messageRef<WebSocketEventMap['message']>
sendMessageSend message functionWebSocket['send']
disconnectDisconnect webSocket manually() => void
connectConnect webSocket manually. If already connected, close the current one and reconnect.() => void
readyStateCurrent webSocket connection statusRef<ReadyState>
webSocketInsWebSocket instanceWebSocket

Source

SourceDocsDemo

- + diff --git a/hooks/en/useWhyDidYouUpdate/index.html b/hooks/en/useWhyDidYouUpdate/index.html index 744033188..2b89edf2f 100644 --- a/hooks/en/useWhyDidYouUpdate/index.html +++ b/hooks/en/useWhyDidYouUpdate/index.html @@ -5,7 +5,7 @@ useWhyDidYouUpdate | VueHook Plus - + @@ -22,7 +22,7 @@
type IProps = Record<string, any>;
 useWhyDidYouUpdate(componentName: string, props: IProps): void;
 

Params

PropertyDescriptionTypeDefault
componentNameRequired, the name of the observation componentstring-
propsRequired, data to be observed (state or props and other data that may lead to rerender)Proxy<object>-

Result

Please open the browser console, you can see the output of the changed observed state or props.

Source

SourceDocsDemo

- + diff --git a/hooks/en/useWinResize/index.html b/hooks/en/useWinResize/index.html index eb3923f39..d54a8d3bf 100644 --- a/hooks/en/useWinResize/index.html +++ b/hooks/en/useWinResize/index.html @@ -5,7 +5,7 @@ useWinResize | VueHook Plus - + @@ -24,7 +24,7 @@ handler: (ev: Event) => void, );

Params

PropertyDescriptionTypeDefault
handler处理函数(ev: Event) => void-

Source

SourceDocsDemo

- + diff --git a/hooks/en/useWorker/index.html b/hooks/en/useWorker/index.html index 08eae2f2a..fa1eba0e0 100644 --- a/hooks/en/useWorker/index.html +++ b/hooks/en/useWorker/index.html @@ -5,7 +5,7 @@ useWorker | VueHook Plus - + @@ -30,7 +30,7 @@ import { VueHooksPlusUseWorkerResolver } from '@vue-hooks-plus/resolvers'

How to use

Code demonstration

Source

SourceDocsDemo

- + diff --git a/hooks/guide/index.html b/hooks/guide/index.html index 4ea4f7aac..ebc2355d4 100644 --- a/hooks/guide/index.html +++ b/hooks/guide/index.html @@ -5,7 +5,7 @@ ✨ 特性 | VueHook Plus - + @@ -74,7 +74,7 @@ ], }

其他支持的工具, 更多请看 unplugin-auto-import


🧩 兼容

不兼容 vue2 版本

- + diff --git a/hooks/hashmap.json b/hooks/hashmap.json index b053e57c7..b5e669872 100644 --- a/hooks/hashmap.json +++ b/hooks/hashmap.json @@ -1 +1 @@ -{"en_guide_index.md":"55451941","en_index.md":"73c7f509","en_migrate_index.md":"cee409d3","en_onlineteaching_index.md":"9c6edf3a","en_useasyncorder_index.md":"e799e027","en_useboolean_index.md":"2ff6aca1","en_usecookiestate_index.md":"9d221607","en_usecounter_index.md":"5364b245","en_usedarkmode_index.md":"5a25eab0","en_usedebounce_index.md":"72c9c51f","en_usedebouncefn_index.md":"815be1a6","en_usedrop_index.md":"3e4c7e6c","en_useelementbounding_index.md":"4ef166e6","en_useeventemitter_index.md":"acd35d39","en_useeventlistener_index.md":"d19341ea","en_useexternal_index.md":"687fb404","en_usefavicon_index.md":"5cf36c92","en_usefetchs_index.md":"5d0f3dd1","en_usefocuswithin_index.md":"cdf1c80f","en_useformatresult_index.md":"0dafe25b","en_usefull_index.md":"2dfe1461","en_usehover_index.md":"e063c65d","en_useimmer_index.md":"37bf4872","en_useinviewport_index.md":"577dc77b","en_useinfinitescroll_index.md":"2413a1b8","en_useinterval_index.md":"f1026b11","en_usekeypress_index.md":"39e88676","en_uselocalstoragestate_index.md":"2807d07f","en_uselockfn_index.md":"477f683b","en_uselongpress_index.md":"d5ff1446","en_usemap_index.md":"e4da18bd","en_usemedia_index.md":"154b2df9","en_usemouse_index.md":"0b17b614","en_usemutationobserver_index.md":"bf4c315b","en_usenetwork_index.md":"c414c08e","en_usepreview_index.md":"410fa92d","en_useprevious_index.md":"561a9b40","en_userequest_basic_index.md":"d8728f7c","en_userequest_cache_index.md":"6bebf015","en_userequest_debounce_index.md":"2ec90133","en_userequest_devtools_index.md":"537f93b4","en_userequest_fetchs_index.md":"96d296ab","en_userequest_formatresult_index.md":"72676be6","en_userequest_global_index.md":"ccbe9e17","en_userequest_guide_index.md":"23ecf2d8","en_userequest_index.md":"b3dc4dba","en_userequest_loadingdelay_index.md":"0bebbd85","en_userequest_middleware_index.md":"a12d1d57","en_userequest_plugin_index.md":"aeb21466","en_userequest_plugins_broadcastchannel_index.md":"be2df487","en_userequest_plugins_fetchsing_index.md":"29b5e2ad","en_userequest_polling_index.md":"cfafdb2d","en_userequest_ready_index.md":"913dbde3","en_userequest_refreshdeps_index.md":"e2f24b43","en_userequest_refreshonwindowfocus_index.md":"05947084","en_userequest_retry_index.md":"c34b9dce","en_userequest_scroll_index.md":"01e80746","en_userequest_throttle_index.md":"c3a540b0","en_useresizeobserver_index.md":"a8ebe4bf","en_usescroll_index.md":"3899bda3","en_usesessionstoragestate_index.md":"76d90b56","en_useset_index.md":"6c87f3d1","en_usesetstate_index.md":"7069af08","en_usesize_index.md":"35c7bbd2","en_usethrottle_index.md":"29d0753e","en_usethrottlefn_index.md":"71d01baa","en_usetimeout_index.md":"27ed350f","en_usetitle_index.md":"383b0468","en_usetoggle_index.md":"548f0303","en_usetrackedeffect_index.md":"ad239991","en_useupdate_index.md":"d6fbf959","en_useurlstate_index.md":"f25f7218","en_usevirtuallist_index.md":"dd65bd95","en_usewebsocket_index.md":"09efe90e","en_usewhydidyouupdate_index.md":"b3f19c7d","en_usewinresize_index.md":"dec7d4de","en_useworker_index.md":"ee2058bd","guide_index.md":"9ecae131","index.md":"08000111","migrate_index.md":"69a5150c","onlineteaching_index.md":"9efccb6c","useasyncorder_index.md":"48219efd","useboolean_index.md":"cecf4ff0","usecookiestate_index.md":"7534658a","usecounter_index.md":"d3bbc757","usedarkmode_index.md":"73525e91","usedebounce_index.md":"77238763","usedebouncefn_index.md":"5113338e","usedrop_index.md":"294a0f12","useelementbounding_index.md":"00240247","useeventemitter_index.md":"e3417cb7","useeventlistener_index.md":"f2283431","useexternal_index.md":"1bbc6c56","usefavicon_index.md":"7d9bc5c1","usefetchs_index.md":"9b0dd5f5","usefocuswithin_index.md":"a6237207","useformatresult_index.md":"7b6c2aaa","usefull_index.md":"4967c1e9","usehover_index.md":"ebcdcece","useimmer_index.md":"5977fc7b","useinviewport_index.md":"a6ed555b","useinfinitescroll_index.md":"e61a29ce","useinterval_index.md":"cd46422b","usekeypress_index.md":"21658469","uselocalstoragestate_index.md":"928c0b68","uselockfn_index.md":"9a16f7d1","uselongpress_index.md":"9d065c30","usemap_index.md":"49edfccd","usemedia_index.md":"2616a7cd","usemouse_index.md":"dd8b480b","usemutationobserver_index.md":"7693263e","usenetwork_index.md":"c48ba660","usepreview_index.md":"6ccec9e2","useprevious_index.md":"e14c30b8","userequest_basic_index.md":"81af9a0f","userequest_cache_index.md":"f0cdaaaa","userequest_debounce_index.md":"aa0351e0","userequest_devtools_index.md":"71227663","userequest_fetchs_index.md":"9863d2b2","userequest_formatresult_index.md":"652a9bf6","userequest_global_index.md":"e7e23fa0","userequest_guide_index.md":"3e6c5fa8","userequest_index.md":"c907ad85","userequest_loadingdelay_index.md":"a564ece2","userequest_middleware_index.md":"caef6063","userequest_plugin_index.md":"ba2423d7","userequest_plugins_broadcastchannel_index.md":"320d3055","userequest_plugins_fetchsing_index.md":"2b8d38b2","userequest_polling_index.md":"cd299e76","userequest_ready_index.md":"4c866668","userequest_refreshdeps_index.md":"9eb7b792","userequest_refreshonwindowfocus_index.md":"a01a3c99","userequest_retry_index.md":"6c8b42b8","userequest_scroll_index.md":"22356e1b","userequest_throttle_index.md":"a5d4c41e","useresizeobserver_index.md":"3e492c43","usescroll_index.md":"2e2eb861","usesessionstoragestate_index.md":"e60ae360","useset_index.md":"4696f389","usesetstate_index.md":"0693216a","usesize_index.md":"7c303855","usethrottle_index.md":"997253ad","usethrottlefn_index.md":"4cb09b9c","usetimeout_index.md":"a282d59b","usetitle_index.md":"42f6918d","usetoggle_index.md":"76e75e82","usetrackedeffect_index.md":"d0b6d1e6","useupdate_index.md":"a117c58b","useurlstate_index.md":"8b7ef3f5","usevirtuallist_index.md":"4f962ce0","usewebsocket_index.md":"8489a481","usewhydidyouupdate_index.md":"55842f4e","usewinresize_index.md":"66015b74","useworker_index.md":"f3f75d0c"} +{"en_guide_index.md":"55451941","en_index.md":"16c82b5d","en_migrate_index.md":"cee409d3","en_onlineteaching_index.md":"9c6edf3a","en_useasyncorder_index.md":"e799e027","en_useboolean_index.md":"2ff6aca1","en_usecookiestate_index.md":"9d221607","en_usecounter_index.md":"5364b245","en_usedarkmode_index.md":"5a25eab0","en_usedebounce_index.md":"72c9c51f","en_usedebouncefn_index.md":"815be1a6","en_usedrop_index.md":"3e4c7e6c","en_useelementbounding_index.md":"4ef166e6","en_useeventemitter_index.md":"acd35d39","en_useeventlistener_index.md":"d19341ea","en_useexternal_index.md":"687fb404","en_usefavicon_index.md":"5cf36c92","en_usefetchs_index.md":"5d0f3dd1","en_usefocuswithin_index.md":"cdf1c80f","en_useformatresult_index.md":"0dafe25b","en_usefull_index.md":"2dfe1461","en_usehover_index.md":"e063c65d","en_useimmer_index.md":"37bf4872","en_useinviewport_index.md":"577dc77b","en_useinfinitescroll_index.md":"2413a1b8","en_useinterval_index.md":"f1026b11","en_usekeypress_index.md":"39e88676","en_uselocalstoragestate_index.md":"2807d07f","en_uselockfn_index.md":"477f683b","en_uselongpress_index.md":"d5ff1446","en_usemap_index.md":"e4da18bd","en_usemedia_index.md":"154b2df9","en_usemouse_index.md":"0b17b614","en_usemutationobserver_index.md":"bf4c315b","en_usenetwork_index.md":"c414c08e","en_usepreview_index.md":"410fa92d","en_useprevious_index.md":"561a9b40","en_userequest_basic_index.md":"d8728f7c","en_userequest_cache_index.md":"6bebf015","en_userequest_debounce_index.md":"2ec90133","en_userequest_devtools_index.md":"537f93b4","en_userequest_fetchs_index.md":"96d296ab","en_userequest_formatresult_index.md":"72676be6","en_userequest_global_index.md":"ccbe9e17","en_userequest_guide_index.md":"23ecf2d8","en_userequest_index.md":"b3dc4dba","en_userequest_loadingdelay_index.md":"0bebbd85","en_userequest_middleware_index.md":"a12d1d57","en_userequest_plugin_index.md":"aeb21466","en_userequest_plugins_broadcastchannel_index.md":"be2df487","en_userequest_plugins_fetchsing_index.md":"29b5e2ad","en_userequest_polling_index.md":"cfafdb2d","en_userequest_ready_index.md":"913dbde3","en_userequest_refreshdeps_index.md":"e2f24b43","en_userequest_refreshonwindowfocus_index.md":"05947084","en_userequest_retry_index.md":"c34b9dce","en_userequest_scroll_index.md":"01e80746","en_userequest_throttle_index.md":"c3a540b0","en_useresizeobserver_index.md":"a8ebe4bf","en_usescroll_index.md":"3899bda3","en_usesessionstoragestate_index.md":"76d90b56","en_useset_index.md":"6c87f3d1","en_usesetstate_index.md":"f049ade8","en_usesize_index.md":"35c7bbd2","en_usethrottle_index.md":"29d0753e","en_usethrottlefn_index.md":"71d01baa","en_usetimeout_index.md":"27ed350f","en_usetitle_index.md":"383b0468","en_usetoggle_index.md":"548f0303","en_usetrackedeffect_index.md":"ad239991","en_useupdate_index.md":"d6fbf959","en_useurlstate_index.md":"f25f7218","en_usevirtuallist_index.md":"dd65bd95","en_usewebsocket_index.md":"09efe90e","en_usewhydidyouupdate_index.md":"b3f19c7d","en_usewinresize_index.md":"dec7d4de","en_useworker_index.md":"ee2058bd","guide_index.md":"9ecae131","index.md":"d89509a8","migrate_index.md":"69a5150c","onlineteaching_index.md":"9efccb6c","useasyncorder_index.md":"48219efd","useboolean_index.md":"cecf4ff0","usecookiestate_index.md":"7534658a","usecounter_index.md":"d3bbc757","usedarkmode_index.md":"73525e91","usedebounce_index.md":"77238763","usedebouncefn_index.md":"5113338e","usedrop_index.md":"294a0f12","useelementbounding_index.md":"00240247","useeventemitter_index.md":"e3417cb7","useeventlistener_index.md":"f2283431","useexternal_index.md":"1bbc6c56","usefavicon_index.md":"7d9bc5c1","usefetchs_index.md":"9b0dd5f5","usefocuswithin_index.md":"a6237207","useformatresult_index.md":"7b6c2aaa","usefull_index.md":"4967c1e9","usehover_index.md":"ebcdcece","useimmer_index.md":"5977fc7b","useinviewport_index.md":"a6ed555b","useinfinitescroll_index.md":"e61a29ce","useinterval_index.md":"cd46422b","usekeypress_index.md":"21658469","uselocalstoragestate_index.md":"928c0b68","uselockfn_index.md":"9a16f7d1","uselongpress_index.md":"9d065c30","usemap_index.md":"49edfccd","usemedia_index.md":"2616a7cd","usemouse_index.md":"dd8b480b","usemutationobserver_index.md":"7693263e","usenetwork_index.md":"c48ba660","usepreview_index.md":"6ccec9e2","useprevious_index.md":"e14c30b8","userequest_basic_index.md":"81af9a0f","userequest_cache_index.md":"f0cdaaaa","userequest_debounce_index.md":"aa0351e0","userequest_devtools_index.md":"71227663","userequest_fetchs_index.md":"9863d2b2","userequest_formatresult_index.md":"652a9bf6","userequest_global_index.md":"e7e23fa0","userequest_guide_index.md":"3e6c5fa8","userequest_index.md":"c907ad85","userequest_loadingdelay_index.md":"a564ece2","userequest_middleware_index.md":"caef6063","userequest_plugin_index.md":"ba2423d7","userequest_plugins_broadcastchannel_index.md":"320d3055","userequest_plugins_fetchsing_index.md":"2b8d38b2","userequest_polling_index.md":"cd299e76","userequest_ready_index.md":"4c866668","userequest_refreshdeps_index.md":"9eb7b792","userequest_refreshonwindowfocus_index.md":"a01a3c99","userequest_retry_index.md":"6c8b42b8","userequest_scroll_index.md":"22356e1b","userequest_throttle_index.md":"a5d4c41e","useresizeobserver_index.md":"3e492c43","usescroll_index.md":"2e2eb861","usesessionstoragestate_index.md":"e60ae360","useset_index.md":"4696f389","usesetstate_index.md":"e8e67cdc","usesize_index.md":"7c303855","usethrottle_index.md":"997253ad","usethrottlefn_index.md":"4cb09b9c","usetimeout_index.md":"a282d59b","usetitle_index.md":"42f6918d","usetoggle_index.md":"76e75e82","usetrackedeffect_index.md":"d0b6d1e6","useupdate_index.md":"a117c58b","useurlstate_index.md":"8b7ef3f5","usevirtuallist_index.md":"4f962ce0","usewebsocket_index.md":"8489a481","usewhydidyouupdate_index.md":"55842f4e","usewinresize_index.md":"66015b74","useworker_index.md":"f3f75d0c"} diff --git a/hooks/index.html b/hooks/index.html index b125ae211..cbb439cf7 100644 --- a/hooks/index.html +++ b/hooks/index.html @@ -5,20 +5,20 @@ VueHook Plus | VueHook Plus - + - + - + -
Skip to content
vue-hooks-plus

VueHooks
Plus

快速开始

🛸 Vue3 的 Hooks

基础和高级的 hook, 高性能逻辑的抽象封装,满足大量场景。

🏄🏼‍♂️ 简洁易用

简洁的语法和易用的特性,轻松上手,详细的文档。

🎯 TypeScript

使用 TypeScript 构建,提供完整的类型定义文件,安全严谨。

🎪 交互式demo演示

眼见为实,身临其境。

🔋 支持 SSR

服务器端渲染的友好支持。

🦾 useRequest

基于插件模式设计的请求函数。

🤺 演练场

在线编码,大有用武之地。

🧩 按需加载

拿你想要,包体积更小。

🔐 安全性

测试完善,安全可靠。

Grace

Demo.vue

Meet The Team

- +
Skip to content
vue-hooks-plus

VueHooks
Plus

快速开始

🛸 Vue3 的 Hooks

基础和高级的 hook, 高性能逻辑的抽象封装,满足大量场景。

🏄🏼‍♂️ 简洁易用

简洁的语法和易用的特性,轻松上手,详细的文档。

🎯 TypeScript

使用 TypeScript 构建,提供完整的类型定义文件,安全严谨。

🎪 交互式demo演示

眼见为实,身临其境。

🔋 支持 SSR

服务器端渲染的友好支持。

🦾 useRequest

基于插件模式设计的请求函数。

🤺 演练场

在线编码,大有用武之地。

🧩 按需加载

拿你想要,包体积更小。

🔐 安全性

测试完善,安全可靠。

Grace

Demo.vue

Meet The Team

+ diff --git a/hooks/migrate/index.html b/hooks/migrate/index.html index 6703d3923..e2853d96f 100644 --- a/hooks/migrate/index.html +++ b/hooks/migrate/index.html @@ -5,7 +5,7 @@ 🫶 迁移到 v2 版本 | VueHook Plus - + @@ -53,7 +53,7 @@ [useFormatterPlugin, ...otherPlugins], )

只需要在原来的 plugin option 的基础上,将其迁移到 pluginOptions 下即可。

- + diff --git a/hooks/onlineTeaching/index.html b/hooks/onlineTeaching/index.html index 172840f78..83b341bcf 100644 --- a/hooks/onlineTeaching/index.html +++ b/hooks/onlineTeaching/index.html @@ -5,7 +5,7 @@ VueHook Plus | VueHook Plus - + @@ -17,7 +17,7 @@ - + diff --git a/hooks/useAsyncOrder/index.html b/hooks/useAsyncOrder/index.html index e6faad098..56b60b3a4 100644 --- a/hooks/useAsyncOrder/index.html +++ b/hooks/useAsyncOrder/index.html @@ -5,7 +5,7 @@ useAsyncOrder | VueHook Plus - + @@ -42,7 +42,7 @@ onError?: (err: unknown) => void }})

Params

参数说明类型
task异步任务顺序队列((resolve?: Resolve,reject?: InterruptibleRejectType,index?: number) => void)[]
option配置项-

Option

参数说明类型
delay延迟执行number
onReady准备阶段回调void
onSuccess成功回调(result: unknown) => void
onError错误回调(err: unknown) => void

Source

源码文档示例

- + diff --git a/hooks/useBoolean/index.html b/hooks/useBoolean/index.html index 9c0a9d812..6926d7876 100644 --- a/hooks/useBoolean/index.html +++ b/hooks/useBoolean/index.html @@ -5,7 +5,7 @@ useBoolean | VueHook Plus - + @@ -24,7 +24,7 @@ defaultValue?: boolean, );

Params

参数说明类型默认值
defaultValue可选项,传入默认的状态值booleanfalse

Result

参数说明类型
state状态值Readonly<Ref<boolean>>
actions操作集合Actions

Actions

参数说明类型
toggle切换 state() => void
set设置 state(value: boolean) => void
setTrue设置为 true() => void
setFalse设置为 false() => void

Source

源码文档示例

- + diff --git a/hooks/useCookieState/index.html b/hooks/useCookieState/index.html index 62eeb4695..92a94c755 100644 --- a/hooks/useCookieState/index.html +++ b/hooks/useCookieState/index.html @@ -5,7 +5,7 @@ useCookieState | VueHook Plus - + @@ -36,7 +36,7 @@ options?: Options, );

注意

如果想从 document.cookie 中删除这条数据,可以使用 setState()setState(undefined)

Params

参数说明类型默认值
cookieKeyCookie 的 key 值string-
options可选项,配置 Cookie 属性Options-

Result

参数说明类型
state本地 Cookie 值Readonly<Ref<string>> | undefined
setState设置 Cookie 值SetState

setState 可以更新 cookie options,会与 useCookieState 设置的 options 进行 merge 操作。

const targetOptions = { ...options, ...updateOptions }

Options

参数说明类型默认值
defaultValue可选,定义 Cookie 默认值,但不同步到本地 Cookiestring | undefined | (() => (string | undefined))undefined
expires可选,定义 Cookie 存储有效时间number | Date-
path可选,定义 Cookie 可用的路径string/
domain可选,定义 Cookie 可用的域,默认为 Cookie 创建的域名string-
secure可选,Cookie 传输是否需要 https 安全协议booleanfalse
sameSite可选,Cookie 不能与跨域请求一起发送strict | lax | none-

Options 与 js-cookie attributes 保持一致。

Source

源码文档示例

- + diff --git a/hooks/useCounter/index.html b/hooks/useCounter/index.html index 193a8430c..352250772 100644 --- a/hooks/useCounter/index.html +++ b/hooks/useCounter/index.html @@ -5,7 +5,7 @@ useCounter | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useCounter

管理计数器的 Hook 。

代码演示

API

const [current, { inc, dec, set, reset }] = useCounter(initialValue, { min, max })
 
const [current, { inc, dec, set, reset }] = useCounter(initialValue, { min, max })
 

Result

参数说明类型
current当前值Readonly<Ref<number>>
inc加,默认加 1(delta?: number) => void
dec减,默认减 1(delta?: number) => void
set设置 current(value: number | ((c: number) => number)) => void
reset重置为默认值() => void

Params

参数说明类型默认值
initialValue默认值number0
min最小值number-
max最大值number-

Source

源码文档示例

- + diff --git a/hooks/useDarkMode/index.html b/hooks/useDarkMode/index.html index c814de5a8..83761bcd3 100644 --- a/hooks/useDarkMode/index.html +++ b/hooks/useDarkMode/index.html @@ -5,7 +5,7 @@ useDarkMode | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useDarkMode

使用暗黑模式的 Hook。

代码演示

API

const [darkMode, setDarkMode] = useDarkMode()
 
const [darkMode, setDarkMode] = useDarkMode()
 

Result

参数说明类型
darkMode是否是暗黑模式ComputedRef<boolean>
setDarkMode设置暗黑模式,undefined 为跟随系统boolean | undefined

Source

源码文档示例

- + diff --git a/hooks/useDebounce/index.html b/hooks/useDebounce/index.html index dcfed27a1..22a2f31aa 100644 --- a/hooks/useDebounce/index.html +++ b/hooks/useDebounce/index.html @@ -5,7 +5,7 @@ useDebounce | VueHook Plus - + @@ -26,7 +26,7 @@ options?: Options );

Params

参数说明类型默认值
value需要防抖的值Ref<any>-
options配置防抖的行为Options-

Options

参数说明类型默认值
wait超时时间,单位为毫秒number1000
leading是否在延迟开始前调用函数booleanfalse
trailing是否在延迟开始后调用函数booleantrue
maxWait最大等待时间,单位为毫秒number-

Source

源码文档示例

- + diff --git a/hooks/useDebounceFn/index.html b/hooks/useDebounceFn/index.html index eddac485f..70cbbd02c 100644 --- a/hooks/useDebounceFn/index.html +++ b/hooks/useDebounceFn/index.html @@ -5,7 +5,7 @@ useDebounceFn | VueHook Plus - + @@ -34,7 +34,7 @@ options?: Options );

Params

参数说明类型默认值
fn需要防抖执行的函数(...args: any[]) => any-
options配置防抖的行为Options-

Options

参数说明类型默认值
wait等待时间,单位为毫秒number1000
leading是否在延迟开始前调用函数booleanfalse
trailing是否在延迟开始后调用函数booleantrue
maxWait最大等待时间,单位为毫秒number-

Result

参数说明类型
run触发执行 fn,函数参数将会传递给 fn(...args: any[]) => any
cancel取消当前防抖() => void
flush立即调用当前防抖函数() => void

Source

源码文档示例

- + diff --git a/hooks/useDrop/index.html b/hooks/useDrop/index.html index 3feb81854..6cecbe42b 100644 --- a/hooks/useDrop/index.html +++ b/hooks/useDrop/index.html @@ -5,7 +5,7 @@ useDrop & useDrag | VueHook Plus - + @@ -36,7 +36,7 @@ options?: DropOptions );

Params

参数说明类型默认值
targetDOM 节点或者 Ref 对象() => Element | Element | MutableRefObject<Element>-
options额外的配置项DragOptions-

DropOptions

参数说明类型默认值
onText拖拽/粘贴文字的回调(text: string, e: DragEvent) => void-
onFiles拖拽/粘贴文件的回调(files: File[], e: DragEvent) => void-
onUrl拖拽/粘贴链接的回调(text: string, e: DragEvent) => void-
onDom拖拽/粘贴自定义 DOM 节点的回调(content: any, e: DragEvent) => void-
onDrop拖拽任意内容的回调(e: DragEvent) => void-
onPaste粘贴内容的回调(e: DragEvent) => void-
onDragEnter拖拽进入(e: DragEvent) => void-
onDragOver拖拽中(e: DragEvent) => void-
onDragLeave拖拽出去(e: DragEvent) => void-

Source

源码文档示例

- + diff --git a/hooks/useElementBounding/index.html b/hooks/useElementBounding/index.html index afd9dd560..24ddd5200 100644 --- a/hooks/useElementBounding/index.html +++ b/hooks/useElementBounding/index.html @@ -5,7 +5,7 @@ useElementBounding | VueHook Plus - + @@ -30,7 +30,7 @@ immediate?: boolean })

Params

参数说明类型默认值
targetDOM 节点或者 Ref 对象() => Element | Element | JSX.Element-
options额外的配置项UseElementBoundingOptions-

Options

参数说明类型默认值
reset当组件为挂载时,将所有值初始化为 0booleantrue
windowResize监听窗口尺寸变化booleantrue
windowScroll监听窗口滚动变化booleantrue
immediate组件挂载时立即执行booleantrue

Source

源码文档示例

- + diff --git a/hooks/useEventEmitter/index.html b/hooks/useEventEmitter/index.html index 354c83dbd..11541d324 100644 --- a/hooks/useEventEmitter/index.html +++ b/hooks/useEventEmitter/index.html @@ -5,7 +5,7 @@ useEventEmitter | VueHook Plus - + @@ -22,7 +22,7 @@
const event = useEventEmitter<T>();
 
 

Params

参数说明类型默认值
global是否为全局booleanfalse

Result

参数说明类型
emit发送一个事件通知(eventName?:string,val: T) => void
useSubscription订阅事件(eventName?:string,callback: (val: T) => void) => void

Source

源码文档示例

- + diff --git a/hooks/useEventListener/index.html b/hooks/useEventListener/index.html index 13753d6eb..44d493af0 100644 --- a/hooks/useEventListener/index.html +++ b/hooks/useEventListener/index.html @@ -5,7 +5,7 @@ useEventListener | VueHook Plus - + @@ -28,7 +28,7 @@ options?: Options, );

Params

参数说明类型默认值
eventName事件名称string-
handler处理函数(ev: Event) => void-
options设置(可选)Options-

Options

参数说明类型默认值
targetDOM 节点或者 ref(() => Element) | Element | React.MutableRefObject<Element> | Window | Documentwindow
capture可选项,listener 会在该类型的事件捕获阶段传播到该 EventTarget 时触发。booleanfalse
once可选项,listener 在添加之后最多只调用一次。如果是 true,listener 会在其被调用之后自动移除。booleanfalse
passive可选项,设置为 true 时,表示 listener 永远不会调用 preventDefault() 。如果 listener 仍然调用了这个函数,客户端将会忽略它并抛出一个控制台警告。boolean

Source

源码文档示例

- + diff --git a/hooks/useExternal/index.html b/hooks/useExternal/index.html index fe5bed71e..d88b637f7 100644 --- a/hooks/useExternal/index.html +++ b/hooks/useExternal/index.html @@ -5,7 +5,7 @@ useExternal | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useExternal

动态注入 JS 或 CSS 资源,useExternal 可以保证资源全局唯一。

代码演示

基本用法

加载 CSS

API

const status = useExternal(path: string, options?: Options);
 
const status = useExternal(path: string, options?: Options);
 

Params

参数说明类型默认值
path外部资源 url 地址string-

Result

参数说明类型
status加载状态,unset(未设置), loading(加载中), ready(加载完成), error(加载失败)Readonly<Ref<UseExternalStatus>>

Options

参数说明类型默认值
type需引入外部资源的类型,支持 js/css,如果不传,则根据 path 推导string-
jsscript 标签支持的属性HTMLScriptElement-
csslink 标签支持的属性HTMLStyleElement-

Source

源码文档示例

- + diff --git a/hooks/useFavicon/index.html b/hooks/useFavicon/index.html index d0980acd3..a28fc0ff9 100644 --- a/hooks/useFavicon/index.html +++ b/hooks/useFavicon/index.html @@ -5,7 +5,7 @@ useFavicon | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useFavicon

设置页面的 favicon。

代码演示

API

useFavicon(href: string);
 
useFavicon(href: string);
 

Params

参数说明类型默认值
hreffavicon 地址, 支持 svg/png/ico/gif 后缀的图片Ref<string>-

Source

源码文档示例

- + diff --git a/hooks/useFetchs/index.html b/hooks/useFetchs/index.html index 16e551042..8000a2f17 100644 --- a/hooks/useFetchs/index.html +++ b/hooks/useFetchs/index.html @@ -5,7 +5,7 @@ useFetchs | VueHook Plus - + @@ -24,7 +24,7 @@ fetchKey: params => string | number, })

Result

参数说明类型默认值
fetchs收集的所有请求状态Readonly<FetchType<TData, TParams>>-
fetchRun需要运行的函数(...args) => void-

Params

参数说明类型默认值
service请求函数UseRequestService<TData, ParamsType<TParams>>-
options额外的配置项useRequest Options-
self自身配置 fetchKey(...args: ParamsType<TParams>) => string-

Options

参考 useRequest 的 option,注意,fetchRun 需要在手动模式下 manual 强制为 true

参数说明类型
fetchKey获取 key,用于注入 useRequest 的 cacheKey(...args) => string | number

Source

源码文档示例

- + diff --git a/hooks/useFocusWithin/index.html b/hooks/useFocusWithin/index.html index 70f91c59b..92368f406 100644 --- a/hooks/useFocusWithin/index.html +++ b/hooks/useFocusWithin/index.html @@ -5,7 +5,7 @@ useFocusWithin | VueHook Plus - + @@ -28,7 +28,7 @@ onChange, })

Params

参数说明类型默认值
targetDOM 节点或者 Ref 对象() => Element | Element | JSX.Element-
options额外的配置项Options-

Options

参数说明类型默认值
onFocus获取焦点时触发(e: FocusEvent) => void-
onBlur失去焦点时触发(e: FocusEvent) => void-
onChange焦点变化时触发(isFocusWithin: boolean) => void-

Result

参数说明类型
isFocusWithin焦点是否在当前区域Ref<boolean>

Source

源码文档示例

- + diff --git a/hooks/useFormatResult/index.html b/hooks/useFormatResult/index.html index 53041c702..319d795f7 100644 --- a/hooks/useFormatResult/index.html +++ b/hooks/useFormatResult/index.html @@ -5,7 +5,7 @@ useFormatResult | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useFormatResult

格式化数据的 hook。

代码演示

API

const formatData = useFormatResult(data, callback)
 
const formatData = useFormatResult(data, callback)
 

Argument

参数说明类型默认值
data需要格式化的数据TData | Ref<TData>-
callback格式化函数(data: TData) => FData-

Result

参数说明类型
formatData格式化后的数据ComputedRef<FData> | FData

Source

源码文档示例

- + diff --git a/hooks/useFull/index.html b/hooks/useFull/index.html index 43d3405b0..2d7e607b1 100644 --- a/hooks/useFull/index.html +++ b/hooks/useFull/index.html @@ -5,7 +5,7 @@ useFullscreen | VueHook Plus - + @@ -40,7 +40,7 @@ options?: Options );

Params

参数说明类型
targetDOM 节点或者 refElement
option设置Options

Options

参数说明类型默认值
onExit退出全屏触发() => void-
onEnter全屏触发() => void-
defaultElement默认全屏元素Element | HTMLElementhtml

Result

参数说明类型
isFullscren是否全屏Readonly<Ref<boolean>>
enterFullscreen设置全屏() => void
exitFullscreen退出全屏() => void
toggleFullscreen切换全屏() => void
isEnabled是否支持全屏boolean

Source

源码文档示例

- + diff --git a/hooks/useHover/index.html b/hooks/useHover/index.html index 4c407e4dc..dbc406b9e 100644 --- a/hooks/useHover/index.html +++ b/hooks/useHover/index.html @@ -5,7 +5,7 @@ useHover | VueHook Plus - + @@ -28,7 +28,7 @@ onChange, })

Params

参数说明类型默认值
targetDOM 节点或者 Ref 对象() => Element | Element | JSX.Element-
options额外的配置项Options-

Options

参数说明类型默认值
onEnterhover 时触发() => void-
onLeave取消 hover 时触发() => void-
onChangehover 状态变化时触发(isHovering: boolean) => void-

Result

参数说明类型
isHovering鼠标元素是否处于 hoverReadonly<Ref<boolean>>

Source

源码文档示例

- + diff --git a/hooks/useImmer/index.html b/hooks/useImmer/index.html index bce245e42..3aa26cee0 100644 --- a/hooks/useImmer/index.html +++ b/hooks/useImmer/index.html @@ -5,7 +5,7 @@ useImmer | VueHook Plus - + @@ -28,7 +28,7 @@

使用方法

hook 基于 immer 管理状态,会安装 immer保证在项目中正常工作

独立安装 @vue-hooks-plus/use-immer

基本用法

API

const [state, updater] = useImmer(initialValue)
 
const [state, updater] = useImmer(initialValue)
 

Params

参数说明类型默认值
state响应式对象Readonly<ShallowRef<S>>-
updater改变值Updater<S>-

Options

PropertyDescriptionTypeDefault
initialValuehover 时触发() => voidany

Source

源码文档示例

- + diff --git a/hooks/useInViewport/index.html b/hooks/useInViewport/index.html index fce2043ee..bfe0aaf80 100644 --- a/hooks/useInViewport/index.html +++ b/hooks/useInViewport/index.html @@ -5,7 +5,7 @@ useInViewport | VueHook Plus - + @@ -26,7 +26,7 @@ options?: Options );

Params

参数说明类型默认值
targetDOM 节点或者 refElement | () => Element | MutableRefObject<Element>-
options设置Options-

Options

更多信息参考 Intersection Observer API

参数说明类型默认值
threshold可以是单一的 number 也可以是 number 数组,target 元素和 root 元素相交程度达到该值的时候 ratio 会被更新number | number[]-
rootMargin根(root)元素的外边距string-
root指定根(root)元素,用于检查目标的可见性。必须是目标元素的父级元素,如果未指定或者为 null,则默认为浏览器视窗。Element | Document | () => (Element/Document) | MutableRefObject<Element>-

Result

参数说明类型
inViewport是否可见Readonly<Ref<boolean>> | undefined
ratio当前可见比例,在每次到达 options.threshold 设置节点时更新Readonly<Ref<number>> | undefined

Source

源码文档示例

- + diff --git a/hooks/useInfiniteScroll/index.html b/hooks/useInfiniteScroll/index.html index 812668c91..87730a840 100644 --- a/hooks/useInfiniteScroll/index.html +++ b/hooks/useInfiniteScroll/index.html @@ -5,7 +5,7 @@ useInfiniteScroll | VueHook Plus - + @@ -76,7 +76,7 @@ } );

Result

参数说明类型
dataservice 返回的数据,其中的 list 属性为聚合后数据Readonly<Ref<TData>> | undefined
loading是否正在进行首次请求ComputedRef<boolean>
loadingMore是否正在进行更多数据请求Readonly<Ref<boolean>>
noMore是否没有更多数据了,配置 options.isNoMore 后生效ComputedRef<boolean>
loadMore加载更多数据,会自动捕获异常,通过 options.onError 处理() => void
loadMoreAsync加载更多数据,与 loadMore 行为一致,但返回的是 Promise,需要自行处理异常() => Promise<TData>
reload加载第一页数据,会自动捕获异常,通过 options.onError 处理() => void
reloadAsync加载第一页数据,与 reload 行为一致,但返回的是 Promise,需要自行处理异常() => Promise<TData>
mutate直接修改 data(data?: TData) => void
cancel忽略当前 Promise 的响应() => void

Options

参数说明类型默认值
target父级容器,如果存在,则在滚动到底部时,自动触发 loadMore。需要配合 isNoMore 使用,以便知道什么时候到最后一页了。() => Element | Element | MutableRefObject<Element>-
isNoMore是否有最后一页的判断逻辑,入参为当前聚合后的 data(data?: TData) => boolean-
threshold下拉自动加载,距离底部距离阈值number100
reloadDeps变化后,会自动触发 reloadWatchSource | any[] |any-
manual
  • 默认 false。 即在初始化时自动执行 service。
  • 如果设置为 true,则需要手动调用 reloadreloadAsync 触发执行。
booleanfalse
onBeforeservice 执行前触发() => void-
onSuccessservice resolve 时触发(data: TData) => void-
onErrorservice reject 时触发(e: Error) => void-
onFinallyservice 执行完成时触发(data?: TData, e?: Error) => void-

Source

源码文档示例

- + diff --git a/hooks/useInterval/index.html b/hooks/useInterval/index.html index 876fe25f1..d04b7e467 100644 --- a/hooks/useInterval/index.html +++ b/hooks/useInterval/index.html @@ -5,7 +5,7 @@ useInterval | VueHook Plus - + @@ -28,7 +28,7 @@ options?: Options ): fn: () => void;

Params

参数说明类型
fn要定时调用的函数() => void
delay间隔时间,当取值 undefined 时会停止计时器Ref<number>|number | undefined
options配置计时器的行为Options

Options

参数说明类型默认值
immediate是否在首次渲染时立即执行booleanfalse

Result

参数说明类型
clearInterval清除定时器() => void

Source

源码文档示例

- + diff --git a/hooks/useKeyPress/index.html b/hooks/useKeyPress/index.html index bbd27b71c..16df80adc 100644 --- a/hooks/useKeyPress/index.html +++ b/hooks/useKeyPress/index.html @@ -5,7 +5,7 @@ useKeyPress | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useKeyPress

监听键盘按键,支持组合键,支持按键别名的 Hook

基础用法

监听组合按键

精确匹配

API

const state = useKeyPress(target?: Target);
 
const state = useKeyPress(target?: Target);
 

Params

参数说明类型
keyFilter键盘输入的当前键Number | String | Number[]| String[] |(event: KeyboardEvent) => boolean
eventHandler事件处理(event: KeyboardEvent) => void
option额外的配置项Options

Options

参数说明类型默认值
events当所监听的事件类型触发时,接收到的一个事件通知对象EventListenerOrEventListenerObject-
targetDOM 节点或者 RefHTMLElement | Document | Window-
exactMatch是否准确匹配Boolean-

Source

源码文档示例

- + diff --git a/hooks/useLocalStorageState/index.html b/hooks/useLocalStorageState/index.html index a55fa8154..cf6a0df29 100644 --- a/hooks/useLocalStorageState/index.html +++ b/hooks/useLocalStorageState/index.html @@ -5,7 +5,7 @@ useLocalStorageState | VueHook Plus - + @@ -36,7 +36,7 @@ options: Options<T> ): [T?, (value?: T | ((previousState: T) => T)) => void];

Options

参数说明类型默认值
defaultValue默认值any | (() => any)-
serializer自定义序列化方法(value: any) => stringJSON.stringify
deserializer自定义反序列化方法(value: string) => anyJSON.parse

Result

参数说明类型
state本地 Storage 值Ref<any | undefined>
setState设置 Storage 值SetState

注意

useLocalStorageState 在往 localStorage 写入数据前,会先调用一次 serializer,在读取数据之后,会先调用一次 deserializer

Source

源码文档示例

- + diff --git a/hooks/useLockFn/index.html b/hooks/useLockFn/index.html index a7b7326d0..be8f069ac 100644 --- a/hooks/useLockFn/index.html +++ b/hooks/useLockFn/index.html @@ -5,7 +5,7 @@ useLockFn | VueHook Plus - + @@ -24,7 +24,7 @@ fn: (...args: P) => Promise<V> ): fn: (...args: P) => Promise<V | undefined>;

Result

参数说明类型
fn增加了竞态锁的函数(...args: any[]) => Promise<any>

Params

参数说明类型默认值
fn需要增加竞态锁的函数(...args: any[]) => Promise<any>-

Source

源码文档示例

- + diff --git a/hooks/useLongPress/index.html b/hooks/useLongPress/index.html index 9a5e97055..5097a4fd7 100644 --- a/hooks/useLongPress/index.html +++ b/hooks/useLongPress/index.html @@ -5,7 +5,7 @@ useLongPress | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useLongPress

监听 Element 的长按事件。

代码演示

API

const { isPressing , pressingTime } = useLongPress(target: BasicTarget , options?: LongPressOptions)
 
const { isPressing , pressingTime } = useLongPress(target: BasicTarget , options?: LongPressOptions)
 

Result

参数说明类型
isPressing表示当前按压状态。如果正在按压,值为 true;否则,值为 false。Readonly<Ref<boolean>>
pressingTime表示按压的持续时间(可能以毫秒为单位)。此值仅在按压期间更新。Readonly<Ref<number>>

Params

参数说明类型Default
targetDOM元素 或 Ref引用() => Element | Element | MutableRefObject<Element>-
options配置選項UseLongPressOptions-

DropOptions

参数说明类型Default
delay触发 longpress 事件前的延迟时间(毫秒)number500
minUpdateTime更新 longpress 事件时间的最小间隔(毫秒)number100
cancelOnMove是否在发生移动时取消 longpress 事件booleantrue
modifierslongpress 事件修饰符LongPressModifiers-

LongPressModifiers

参数说明类型Default
stop停止传播事件boolean-
once只监听事件监听器一次boolean-
prevent阻止默认事件boolean-
capture事件监听器捕获选项boolean-
self检查事件目标元素是否与自身相同boolean-

Source

源码文档示例

- + diff --git a/hooks/useMap/index.html b/hooks/useMap/index.html index d51d6ea3e..d96198c3c 100644 --- a/hooks/useMap/index.html +++ b/hooks/useMap/index.html @@ -5,7 +5,7 @@ useMap | VueHook Plus - + @@ -38,7 +38,7 @@ } ] = useMap(initialValue?: Iterable<[any, any]>);

Result

参数说明类型
mapMap 对象Readonly<Ref<Map>>
set添加元素(key: any, value: any) => void
get获取元素(key: any) => MapItem
setAll生成一个新的 Map 对象(newMap: Iterable<[any, any]>) => void
remove移除元素(key: any) => void
reset重置为默认值() => void
clear清空 Map 对象() => void

Params

参数说明类型默认值
initialValue可选项,传入默认的 Map 参数Iterable<[any, any]>-

Source

源码文档示例

- + diff --git a/hooks/useMedia/index.html b/hooks/useMedia/index.html index 33fdb7b5c..cf8bed326 100644 --- a/hooks/useMedia/index.html +++ b/hooks/useMedia/index.html @@ -5,7 +5,7 @@ useMedia | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useMedia

优雅使用媒体查询的 Hook。

代码演示

API

const value = useMedia(['(min-width: 320px)'], [true], false)
 
const value = useMedia(['(min-width: 320px)'], [true], false)
 

Options

参数说明类型默认值
queries媒体查询对象数组string[]-
values每一项媒体查询对象的默认值boolean[]-
defaultValue默认值boolean

Result

参数说明类型
value是否符合查询Readonly<Ref<boolean>>

Source

源码文档示例

- + diff --git a/hooks/useMouse/index.html b/hooks/useMouse/index.html index c5a17625c..b4d536014 100644 --- a/hooks/useMouse/index.html +++ b/hooks/useMouse/index.html @@ -5,7 +5,7 @@ useMouse | VueHook Plus - + @@ -46,7 +46,7 @@ elementPosY: number, } = useMouse(target?: Target);

Params

参数说明类型
targetDOM 节点或者 RefElement | () => Element | JSX.Element

Result

参数说明类型
screenX距离显示器左侧的距离number
screenY距离显示器顶部的距离number
clientX距离当前视窗左侧的距离number
clientY距离当前视窗顶部的距离number
pageX距离完整页面左侧的距离number
pageY距离完整页面顶部的距离number
elementX距离指定元素左侧的距离number
elementY距离指定元素顶部的距离number
elementH指定元素的高number
elementW指定元素的宽number
elementPosX指定元素距离完整页面左侧的距离number
elementPosY指定元素距离完整页面顶部的距离number

Source

源码文档示例

- + diff --git a/hooks/useMutationObserver/index.html b/hooks/useMutationObserver/index.html index e9d3ae282..1c0455a7b 100644 --- a/hooks/useMutationObserver/index.html +++ b/hooks/useMutationObserver/index.html @@ -5,7 +5,7 @@ useMutationObserver | VueHook Plus - + @@ -28,7 +28,7 @@ options?: MutationObserverInit, );

Params

参数说明类型默认值
callback触发的回调函数(mutations: MutationRecord[], observer: MutationObserver) => void-
targetDOM 节点或者 RefElement | () => Element | MutableRefObject<Element>-
options设置项MutationObserverInit{}

Options

配置项请参考 MutationObserver

Source

源码文档示例

- + diff --git a/hooks/useNetwork/index.html b/hooks/useNetwork/index.html index 59cc318d3..a6661a643 100644 --- a/hooks/useNetwork/index.html +++ b/hooks/useNetwork/index.html @@ -5,7 +5,7 @@ useNetwork | VueHook Plus - + @@ -40,7 +40,7 @@ } const result: NetworkState = useNetwork()

Result

参数描述类型
online网络是否为在线boolean
sinceonline 最后改变时间Date
rtt当前连接下评估的往返时延number
type设备使用与所述网络进行通信的连接的类型bluetooth | cellular | ethernet | none | wifi | wimax | other | unknown
downlink有效带宽估算(单位:兆比特/秒)number
downlinkMax最大下行速度(单位:兆比特/秒)number
saveData用户代理是否设置了减少数据使用的选项boolean
effectiveType网络连接的类型slow-2g | 2g | 3g | 4g

Source

源码文档示例

- + diff --git a/hooks/usePreview/index.html b/hooks/usePreview/index.html index c841a8729..2c6d22094 100644 --- a/hooks/usePreview/index.html +++ b/hooks/usePreview/index.html @@ -5,7 +5,7 @@ usePreview | VueHook Plus - + @@ -85,7 +85,7 @@

API

const { container } = usePreview(target)
 
const { container } = usePreview(target)
 

Params

参数说明类型
targetDOM 节点或者 RefVueComponent | string | JSX.Element

Result

参数说明类型
containerDOM 节点或者 RefElement | () => Element | JSX.Element

Source

源码文档示例

- + diff --git a/hooks/usePrevious/index.html b/hooks/usePrevious/index.html index 7ff25d376..f9fb1adf0 100644 --- a/hooks/usePrevious/index.html +++ b/hooks/usePrevious/index.html @@ -5,7 +5,7 @@ usePrevious | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

usePrevious

保存上一次状态的 Hook。

基础用法

自定义 shouldUpdate 函数

Result

参数说明类型
previousRef上次 state 的值Readonly<Ref<T>>

Params

参数说明类型默认值
currentRef需要记录变化的值Ref<T> | ComputedRef<T>-
shouldUpdate可选,自定义判断值是否变化(prev: T | undefined, next: T) => boolean(a, b) => a !== b

Source

源码文档示例

- + diff --git a/hooks/useRequest/basic/index.html b/hooks/useRequest/basic/index.html index 2ccf4b43f..31ea105f4 100644 --- a/hooks/useRequest/basic/index.html +++ b/hooks/useRequest/basic/index.html @@ -5,7 +5,7 @@ useRequest 基础用法 | VueHook Plus - + @@ -86,7 +86,7 @@ } );

Result

参数说明类型
dataservice 返回的数据Readonly<Ref<TData>> | undefined
errorservice 抛出的异常Readonly<Ref<Error>> | undefined
loadingservice 是否正在执行Readonly<>Ref<boolean>
params当次执行的 service 的参数数组。比如你触发了 run(1, 2, 3),则 params 等于 [1, 2, 3]Readonly<Ref<TParams | []>>
run
  • 手动触发 service 执行,参数会传递给 service
  • 异常自动处理,通过 onError 反馈
(...params: TParams) => void
runAsyncrun 用法一致,但返回的是 Promise,需要自行处理异常。(...params: TParams) => Promise<TData>
refresh使用上一次的 params,重新调用 run() => void
refreshAsync使用上一次的 params,重新调用 runAsync() => Promise<TData>
mutate直接修改 data(data?: TData | ((oldData?: TData) => (TData | undefined))) => void
cancel取消当前正在进行的请求() => void

Options

参数说明类型默认值
initialData初始化的数据TData | undefined
manual
  • 默认 false。 即在初始化时自动执行 service。
  • 如果设置为 true,则需要手动调用 runrunAsync 触发执行。
booleanfalse
defaultParams首次默认执行时,传递给 service 的参数TParams-
formatResult格式化请求结果,v1 建议使用 useFormatResult(response: TData) => FormatData-
onBeforeservice 执行前触发(params: TParams) => void-
onSuccessservice resolve 时触发(data: TData, params: TParams) => void-
onErrorservice reject 时触发(e: Error, params: TParams) => void-
onFinallyservice 执行完成时触发(params: TParams, data?: TData, e?: Error) => void-

🛸 PRO

这是 useRequest 最基础的功能,接下来介绍一些更高级的能力。

Source

源码文档示例

- + diff --git a/hooks/useRequest/cache/index.html b/hooks/useRequest/cache/index.html index d2e026ad9..e5a5f60d8 100644 --- a/hooks/useRequest/cache/index.html +++ b/hooks/useRequest/cache/index.html @@ -5,7 +5,7 @@ 缓存 & SWR | VueHook Plus - + @@ -32,7 +32,7 @@
import { clearCache } from 'vue-hooks-plus/es/useRequest';
 clearCache(cacheKey?: string | string[]);
 
  1. 支持清空单个缓存,或一组缓存
  2. 如果 cacheKey 为空,则清空所有缓存数据

注意

  • 只有成功的请求数据才会缓存
  • 缓存的数据包括 dataparams

Source

源码文档示例

- + diff --git a/hooks/useRequest/debounce/index.html b/hooks/useRequest/debounce/index.html index 11d03b780..bf2e28bbf 100644 --- a/hooks/useRequest/debounce/index.html +++ b/hooks/useRequest/debounce/index.html @@ -5,7 +5,7 @@ 防抖 | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

防抖

useRequest 提供了一个 options.debounceWait 参数,进入防抖模式,此时如果频繁触发 run 或者 runAsync,则会以防抖策略进行请求。

代码演示

Options

debounce 所有参数用法和效果同 lodash.debounce

参数说明类型默认值
debounceWait防抖等待时间, 单位为毫秒,设置后,进入防抖模式number-
debounceLeading在延迟开始前执行调用boolean|Ref<boolean>false
debounceTrailing在延迟结束后执行调用boolean|Ref<boolean>true
debounceMaxWait允许被延迟的最大值number|Ref<number>-

注意

  • options.debounceLeading 支持动态变化。
  • options.debounceTrailing 支持动态变化。
  • options.debounceMaxWait 支持动态变化。
  • runAsync 在真正执行时,会返回 Promise。在未被执行时,不会有任何返回。
  • cancel 可以中止正在等待执行的函数。

Source

源码文档示例

- + diff --git a/hooks/useRequest/devtools/index.html b/hooks/useRequest/devtools/index.html index 5b0a1c983..414bc090f 100644 --- a/hooks/useRequest/devtools/index.html +++ b/hooks/useRequest/devtools/index.html @@ -5,7 +5,7 @@ 开发者工具 | VueHook Plus - + @@ -26,7 +26,7 @@

.vue 中使用

使用 debugKey 创建唯一标识开启。

const { data, loading } = useRequest(() => getUsername({ desc: 'good' }), { debugKey: 'demo' })
 
const { data, loading } = useRequest(() => getUsername({ desc: 'good' }), { debugKey: 'demo' })
 

大功告成!打开浏览器 Vue 插件进行使用吧 🍺

Alt

- + diff --git a/hooks/useRequest/fetchs/index.html b/hooks/useRequest/fetchs/index.html index 1c14be216..55e398ad1 100644 --- a/hooks/useRequest/fetchs/index.html +++ b/hooks/useRequest/fetchs/index.html @@ -5,7 +5,7 @@ 见 👇 useFetchs | VueHook Plus - + @@ -17,7 +17,7 @@ - + diff --git a/hooks/useRequest/formatResult/index.html b/hooks/useRequest/formatResult/index.html index 883401d5d..224ec8e8e 100644 --- a/hooks/useRequest/formatResult/index.html +++ b/hooks/useRequest/formatResult/index.html @@ -5,7 +5,7 @@ 格式化请求数据 | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

格式化请求数据

v1 use

由于 v1 版本 useRequest 需要保证良好的插件系统,format 对于系统来说侵入性太大,这里格式化使用的的是 useFormatResult,在请求数据完成后将 data 传入 useFormatResult 进行格式化, useFormatResult 可以很好的支持 typescript 类型提示。

跳转至 useFormatResult

v2 use

它现在能够很好的支持 ts 类型。

Options

参数说明类型默认值
formatResult格式化请求结果(response: TData) => FormatData-
- + diff --git a/hooks/useRequest/global/index.html b/hooks/useRequest/global/index.html index 466c00313..4efc34b14 100644 --- a/hooks/useRequest/global/index.html +++ b/hooks/useRequest/global/index.html @@ -5,7 +5,7 @@ 全局配置 useRequestProvider v1.6.1 | VueHook Plus - + @@ -24,7 +24,7 @@ useRequestProvider({ ...options })

Source

源码文档示例

- + diff --git a/hooks/useRequest/guide/index.html b/hooks/useRequest/guide/index.html index a97facd8d..0f03b55e9 100644 --- a/hooks/useRequest/guide/index.html +++ b/hooks/useRequest/guide/index.html @@ -5,7 +5,7 @@ 📐 useRequest 规范 | VueHook Plus - + @@ -209,7 +209,7 @@ const { data } = useRequest(() => getUserInfo('666')) </script>

结语

上述是一套严谨可靠的请求方案,也可根据自身需求自行使用更改。

Source

文档

- + diff --git a/hooks/useRequest/index.html b/hooks/useRequest/index.html index d8c654797..2be2701e6 100644 --- a/hooks/useRequest/index.html +++ b/hooks/useRequest/index.html @@ -5,7 +5,7 @@ 快速开始 | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

快速开始

🚀 useRequest

拥有强大管理网络请求能力,让开发具有飞一般的体验 的 Hook


useRequest 通过插件式组织代码,核心代码简单易懂,并且可以很方便的扩展出更高级的功能。目前已有能力包括:

  • 自动请求/手动请求
  • 轮询
  • 防抖
  • 节流
  • 屏幕聚焦重新请求
  • 错误重试
  • loading delay
  • SWR(stale-while-revalidate)
  • 缓存
  • 滚动加载和分页加载
  • 并行请求
  • 自定义插件

默认请求

默认情况下,useRequest 第一个参数是一个异步函数,在组件初始化时,会自动执行该异步函数。同时自动管理该异步函数的 loading , data , error 等状态。

const { data, error, loading } = useRequest(service)
 
const { data, error, loading } = useRequest(service)
 

Source

文档示例

- + diff --git a/hooks/useRequest/loadingDelay/index.html b/hooks/useRequest/loadingDelay/index.html index 02b021ef4..af34b2891 100644 --- a/hooks/useRequest/loadingDelay/index.html +++ b/hooks/useRequest/loadingDelay/index.html @@ -5,7 +5,7 @@ Loading Delay | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

Loading Delay

通过设置 options.loadingDelay ,可以延迟 loading 变成 true 的时间,有效防止闪烁。

代码演示

基本用法

如果你快速的点击 run, 没使用 loadingDelay 的数据将会闪烁。

API

参数说明类型默认值
loadingDelay设置 loading 变成 true 的延迟时间number | Ref<number>0

备注

options.loadingDelay 支持动态变化。

Source

源码文档示例

- + diff --git a/hooks/useRequest/middleware/index.html b/hooks/useRequest/middleware/index.html index fc03d8473..af47d89c9 100644 --- a/hooks/useRequest/middleware/index.html +++ b/hooks/useRequest/middleware/index.html @@ -5,7 +5,7 @@ 中间件 Beta | VueHook Plus - + @@ -42,7 +42,7 @@ use: [middleware], })

Source

源码文档示例

- + diff --git a/hooks/useRequest/plugin/index.html b/hooks/useRequest/plugin/index.html index a800514eb..4cd78f9b8 100644 --- a/hooks/useRequest/plugin/index.html +++ b/hooks/useRequest/plugin/index.html @@ -5,7 +5,7 @@ 插件设计规范 | VueHook Plus - + @@ -194,7 +194,7 @@ [useFormatterPlugin, ...otherPlugins], )

Options

参数说明类型默认值
Plugin自定义插件(fetchInstance, option) => UseRequestPluginReturn-

Source

源码文档示例

- + diff --git a/hooks/useRequest/plugins/broadcastChannel/index.html b/hooks/useRequest/plugins/broadcastChannel/index.html index dca4999d1..19c870b05 100644 --- a/hooks/useRequest/plugins/broadcastChannel/index.html +++ b/hooks/useRequest/plugins/broadcastChannel/index.html @@ -5,7 +5,7 @@ BroadcastChannel(实验) | VueHook Plus - + @@ -61,7 +61,7 @@ [useBroadcastChannelPlugin], )

Options

PropertyDescriptionType
broadcastChannel必填,频道的名称,需要频道名称一样才能接收到同频数据。string
broadcastChannelKey非必填,用于区分不同应用类型的标识符。string
broadcastChannelOptionsbroadcast-channel 的配置项,默认配置{ webWorkerSupport:false }BroadcastChannelOptions
customPostMessage用户自定义收集发送数据,默认发送方式为 type,data,params,error(postMessage: (msg?: any) => Promise<void>, channel?: BroadcastChannel) => void
onBroadcastChannel监听收集其他应用(包括同一应用的多窗口)发送的同频数据(value?: MessageType, channel?: BroadcastChannel, setFetchState?: Fetch<any, []>['setFetchState']) => void

Source

源码文档示例

- + diff --git a/hooks/useRequest/plugins/fetchsing/index.html b/hooks/useRequest/plugins/fetchsing/index.html index 9543d6a7a..44ea1c952 100644 --- a/hooks/useRequest/plugins/fetchsing/index.html +++ b/hooks/useRequest/plugins/fetchsing/index.html @@ -5,7 +5,7 @@ useRequest Fetching 插件 | VueHook Plus - + @@ -57,7 +57,7 @@ [useFetchingPlugin], )

Options

PropertyDescriptionType
fetchingKey需要收集状态的标识 key,存在即会被状态收集(params: any[]) => string
onFetching中间态函数回调,第一个参数current是当前自身的状态,第二个参数record是所有的状态(current:any,record:Record<string,any>) => void
isFetching官方自带的功能,判断所有请求状态是否请求完成(_isFetching: boolean) => void

Source

源码文档示例

- + diff --git a/hooks/useRequest/polling/index.html b/hooks/useRequest/polling/index.html index a7e61c8f4..e9f63e5ec 100644 --- a/hooks/useRequest/polling/index.html +++ b/hooks/useRequest/polling/index.html @@ -5,7 +5,7 @@ 轮询 | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

轮询

通过设置 options.pollingInterval,进入轮询模式,useRequest 会定时触发 service 执行。

代码演示

Return

参数说明类型
run启动轮询(...params: TParams) => void
runAsync启动轮询(...params: TParams) => Promise<TData>
cancel停止轮询() => void

Options

参数说明类型默认值
pollingInterval轮询间隔,单位为毫秒。如果值大于 0,则启动轮询模式。number|Ref<number>0
pollingWhenHidden在页面隐藏时,是否继续轮询。如果设置为 false,在页面隐藏时会暂时停止轮询,页面重新显示时继续上次轮询。booleantrue
pollingErrorRetryCount轮询错误重试次数。如果设置为 -1,则无限次number-1

注意

  • options.pollingInterval 支持动态变化。
  • options.pollingWhenHidden 支持动态变化。
  • 如果设置 options.manual = true,则初始化不会启动轮询,需要通过 run/runAsync 触发开始。
  • 轮询原理是在每次请求完成后,等待 pollingInterval 时间,发起下一次请求。

Source

源码文档示例

- + diff --git a/hooks/useRequest/ready/index.html b/hooks/useRequest/ready/index.html index 5143be2ca..cf133be13 100644 --- a/hooks/useRequest/ready/index.html +++ b/hooks/useRequest/ready/index.html @@ -5,7 +5,7 @@ Ready | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

Ready

useRequest 提供了一个 options.ready 参数,当其值为 false 时,请求永远都不会发出。

  • 1、当 manual=false 自动请求模式时,每次 readyfalse 变为 true 时,都会自动发起请求,会带上参数 options.defaultParams
  • 2、当 manual=true 手动请求模式时,只要 ready=false,则通过 run/runAsync 触发的请求都不会执行。

代码演示

Options

参数说明类型默认值
ready当前请求是否准备好了boolean|Ref<boolean>true

Source

源码文档示例

- + diff --git a/hooks/useRequest/refreshDeps/index.html b/hooks/useRequest/refreshDeps/index.html index c366d667c..21cc2a7de 100644 --- a/hooks/useRequest/refreshDeps/index.html +++ b/hooks/useRequest/refreshDeps/index.html @@ -5,7 +5,7 @@ 依赖刷新 | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

依赖刷新

useRequest 提供了一个 options.refreshDeps 参数,替代了 watch,会监听响应式值的变化,当值变化的时候会重新发起请求。

注意

只有自动模式模式,即 manual 不为 true ,依赖刷新配置才会生效。

手动收集依赖

refreshDeps 传入的是响应式对象数组的时候,当它的值变化后,会重新触发请求 。

自动收集依赖 v1.6.0

refreshDeps 传入的是 true 的时候,useRequest 会自动收集函数参数中的响应式对象参数,只要参数里面的响应式对象发生变化就会携带最新的值重新发起请求 。

API

Options

参数说明类型默认值
refreshDeps
  • 依赖响应式对象数组,和 vuewatch 传入监听的对象用法一致。
  • 如果设置为 true,则会自动收集依赖执行,也支持和 ready 搭配使用
boolean | WatchSource[]-

Source

源码文档示例

- + diff --git a/hooks/useRequest/refreshOnWindowFocus/index.html b/hooks/useRequest/refreshOnWindowFocus/index.html index a3d87ca5b..d1876617e 100644 --- a/hooks/useRequest/refreshOnWindowFocus/index.html +++ b/hooks/useRequest/refreshOnWindowFocus/index.html @@ -5,7 +5,7 @@ 屏幕聚焦重新请求 | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

屏幕聚焦重新请求

useRequest 提供了一个 options.refreshOnWindowFocus 参数,在浏览器窗口 refocusrevisible 时,会重新发起请求。

代码演示

API

Options

参数说明类型默认值
refreshOnWindowFocus在屏幕重新获取焦点或重新显示时,重新发起请求boolean|Ref<boolean>false
focusTimespan重新请求间隔,单位为毫秒number| Ref<number>5000

注意

  • options.refreshOnWindowFocus 支持动态变化。
  • options.focusTimespan 支持动态变化。
  • 监听的浏览器事件为 visibilitychangefocus

Source

源码文档示例

- + diff --git a/hooks/useRequest/retry/index.html b/hooks/useRequest/retry/index.html index 3f353f045..2d3361ebb 100644 --- a/hooks/useRequest/retry/index.html +++ b/hooks/useRequest/retry/index.html @@ -5,7 +5,7 @@ 错误重试 | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

错误重试

useRequest 提供了一个 options.retryCount 参数,指定错误重试次数,则 useRequest 在失败后会进行重试

代码演示

API

Options

参数说明类型默认值
retryCount错误重试次数。如果设置为 -1,则无限次重试。number-
retryInterval
  • 重试时间间隔,单位为毫秒。
  • 如果不设置,默认采用简易的指数退避算法,取 1000 * 2 ** retryCount,也就是第一次重试等待 2s,第二次重试等待 4s,以此类推,如果大于 30s,则取 30s
number-

注意

  • cancel 可以取消正在进行的重试行为。

Source

源码文档示例

- + diff --git a/hooks/useRequest/scroll/index.html b/hooks/useRequest/scroll/index.html index 0facb175b..aed27dacc 100644 --- a/hooks/useRequest/scroll/index.html +++ b/hooks/useRequest/scroll/index.html @@ -5,7 +5,7 @@ 看 👇 useInfiniteScroll | VueHook Plus - + @@ -17,7 +17,7 @@ - + diff --git a/hooks/useRequest/throttle/index.html b/hooks/useRequest/throttle/index.html index ddd62c363..a81f4ccb5 100644 --- a/hooks/useRequest/throttle/index.html +++ b/hooks/useRequest/throttle/index.html @@ -5,7 +5,7 @@ 节流 | VueHook Plus - + @@ -18,7 +18,7 @@
Skip to content
On this page

节流

useRequest 提供了一个 options.throttleWait 参数,进入节流模式,此时如果频繁触发 run 或者 runAsync,则会以节流策略进行请求。

代码演示

Options

throttle 所有参数用法和效果同 lodash.throttle

参数说明类型默认值
throttleWait节流等待时间, 单位为毫秒,设置后,进入节流模式number-
throttleLeading在节流开始前执行调用boolean|Ref<boolean>true
throttleTrailing在节流结束后执行调用boolean|Ref<boolean>true

注意

  • options.throttleWait 支持动态变化。
  • options.throttleLeading 支持动态变化。
  • options.throttleTrailing 支持动态变化。
  • runAsync 在真正执行时,会返回 Promise。在未被执行时,不会有任何返回。

Source

源码文档示例

- + diff --git a/hooks/useResizeObserver/index.html b/hooks/useResizeObserver/index.html index bd126a39e..7aa3069a1 100644 --- a/hooks/useResizeObserver/index.html +++ b/hooks/useResizeObserver/index.html @@ -5,7 +5,7 @@ useResizeObserver | VueHook Plus - + @@ -24,7 +24,7 @@ box: ResizeObserverBoxOptions, })

Params

参数说明类型默认值
targetDOM 节点或者 Ref 对象() => Element | Element | JSX.Element-
options额外的配置项UseResizeObserverOptions-

Options

参数说明类型默认值
box盒模型模式ResizeObserverBoxOptionscontent-box

Source

源码文档示例

- + diff --git a/hooks/useScroll/index.html b/hooks/useScroll/index.html index 6a1328e75..9c3f813cf 100644 --- a/hooks/useScroll/index.html +++ b/hooks/useScroll/index.html @@ -5,7 +5,7 @@ useScroll | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useScroll

优雅监听元素的滚动位置的 Hook。

代码演示

基础用法

监测整页的滚动

控制滚动状态的监听

API

const position = useScroll(target, shouldUpdate)
 
const position = useScroll(target, shouldUpdate)
 

Params

参数说明类型默认值
targetDOM 节点或者 refElement | Document | (() => Element) | JSX.Elementdocument
shouldUpdate控制是否更新滚动信息({ top: number, left: number }) => boolean-

Result

参数说明类型
position滚动容器当前的滚动位置Readonly<Ref<{ left: number, top: number } | undefined>>

Source

源码文档示例

- + diff --git a/hooks/useSessionStorageState/index.html b/hooks/useSessionStorageState/index.html index e50cf3d9b..ee6ce34ca 100644 --- a/hooks/useSessionStorageState/index.html +++ b/hooks/useSessionStorageState/index.html @@ -5,7 +5,7 @@ useSessionStorageState | VueHook Plus - + @@ -17,7 +17,7 @@
Skip to content
On this page

useSessionStorageState

将状态存储在 sessionStorage 中的 Hook 。

用法与 useLocalStorageState 一致。

Source

源码文档示例

- + diff --git a/hooks/useSet/index.html b/hooks/useSet/index.html index 7a374ead1..5598a7372 100644 --- a/hooks/useSet/index.html +++ b/hooks/useSet/index.html @@ -5,7 +5,7 @@ useSet | VueHook Plus - + @@ -38,7 +38,7 @@ } ] = useSet(initialValue?: Iterable<K>);

Result

参数说明类型
setSet 对象Readonly<Ref<Set>>
add添加元素(key: T) => void
remove移除元素(key: T) => void
reset重置为默认值() => void
clear清除 Set() => void
hasSet has(key: T) => void

Params

参数说明类型默认值
initialValue可选项,传入默认的 Set 参数Iterable<K>-

Source

源码文档示例

- + diff --git a/hooks/useSetState/index.html b/hooks/useSetState/index.html index 1f9d221a8..6ac19cf41 100644 --- a/hooks/useSetState/index.html +++ b/hooks/useSetState/index.html @@ -5,12 +5,12 @@ useSetState | VueHook Plus - + - + - + @@ -30,7 +30,7 @@ (patch: Record<string, any>) => void ]

Source

源码文档示例

- + diff --git a/hooks/useSize/index.html b/hooks/useSize/index.html index f8c197278..469b55744 100644 --- a/hooks/useSize/index.html +++ b/hooks/useSize/index.html @@ -5,7 +5,7 @@ useSize | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useSize

监听 DOM 节点尺寸变化的 Hook

代码演示

基础用法

传入 Dom

API

const size = useSize(target)
 
const size = useSize(target)
 

Params

参数说明类型默认值
targetDOM 节点或者 refElement | (() => Element) | JSX.Element-

Result

参数说明类型
sizeDOM 节点的尺寸Readonly<Ref<{ width: number, height: number } | undefined>>

Source

源码文档示例

- + diff --git a/hooks/useThrottle/index.html b/hooks/useThrottle/index.html index 8d226385a..744c1b209 100644 --- a/hooks/useThrottle/index.html +++ b/hooks/useThrottle/index.html @@ -5,7 +5,7 @@ useThrottle | VueHook Plus - + @@ -26,7 +26,7 @@ options?: Options );

Params

参数说明类型默认值
value需要节流的值Ref<any>-
options配置节流的行为Options-

Options

参数说明类型默认值
wait等待时间,单位为毫秒number1000
leading是否在延迟开始前调用函数booleantrue
trailing是否在延迟开始后调用函数booleantrue

Source

源码文档示例

- + diff --git a/hooks/useThrottleFn/index.html b/hooks/useThrottleFn/index.html index d223914ae..55c7ce5e4 100644 --- a/hooks/useThrottleFn/index.html +++ b/hooks/useThrottleFn/index.html @@ -5,7 +5,7 @@ useThrottleFn | VueHook Plus - + @@ -34,7 +34,7 @@ options?: Options );

Params

参数说明类型默认值
fn需要节流的函数(...args: any[]) => any-
options配置节流的行为Options-

Options

参数说明类型默认值
wait等待时间,单位为毫秒number1000
leading是否在延迟开始前调用函数booleantrue
trailing是否在延迟开始后调用函数booleantrue

Result

参数说明类型
run触发执行 fn,函数参数将会传递给 fn(...args: any[]) => any
cancel取消当前节流() => void
flush当前节流立即调用() => void

Source

源码文档示例

- + diff --git a/hooks/useTimeout/index.html b/hooks/useTimeout/index.html index 4df3ffb9c..ee0ca7dd7 100644 --- a/hooks/useTimeout/index.html +++ b/hooks/useTimeout/index.html @@ -5,7 +5,7 @@ useTimeout | VueHook Plus - + @@ -32,7 +32,7 @@ } ): fn: () => void;

Params

参数说明类型
fn待执行函数() => void
delay定时时间(单位为毫秒),支持动态变化,,当取值为 undefined 时会停止计时器Ref<number | undefined >|number | undefined
immediate是否在首次立即执行boolean

Result

参数说明类型
clearTimeout清除定时器() => void

Source

源码文档示例

- + diff --git a/hooks/useTitle/index.html b/hooks/useTitle/index.html index 4c1f7d077..9cc56d9e9 100644 --- a/hooks/useTitle/index.html +++ b/hooks/useTitle/index.html @@ -5,7 +5,7 @@ useTitle | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useTitle

改变浏览器 title 的 Hook

代码演示

API

useTitle(title: string, options?: Options);
 
useTitle(title: string, options?: Options);
 

Params

参数说明类型默认值
title页面标题Ref<string>-

Options

参数说明类型默认值
restoreOnUnmount组件卸载时,是否恢复上一个页面标题booleanfalse

Source

源码文档示例

- + diff --git a/hooks/useToggle/index.html b/hooks/useToggle/index.html index 2e3acedfd..d65f18552 100644 --- a/hooks/useToggle/index.html +++ b/hooks/useToggle/index.html @@ -5,7 +5,7 @@ useToggle | VueHook Plus - + @@ -24,7 +24,7 @@ const [state, { toggle, set, setLeft, setRight }] = useToggle<T>(defaultValue: T); const [state, { toggle, set, setLeft, setRight }] = useToggle<T, U>(defaultValue: T, reverseValue: U);

Params

参数说明类型默认值
defaultValue可选项,传入默认的状态值Tfalse
reverseValue可选项,传入取反的状态值U-

Result

参数说明类型
state状态值Readonly<Ref<any>>
actions操作集合Actions

Actions

参数说明类型
toggle切换 state() => void
set设置 state(state: T | U) => void
setLeft设置为 defaultValue() => void
setRight如果传入了 reverseValue, 则设置为 reverseValue。 否则设置为 defautValue 的反值() => void

Source

源码文档示例

- + diff --git a/hooks/useTrackedEffect/index.html b/hooks/useTrackedEffect/index.html index e287a30fd..ebc14de67 100644 --- a/hooks/useTrackedEffect/index.html +++ b/hooks/useTrackedEffect/index.html @@ -5,7 +5,7 @@ useTrackedEffect | VueHook Plus - + @@ -26,7 +26,7 @@ deps?: deps, )

Source

源码文档示例

- + diff --git a/hooks/useUpdate/index.html b/hooks/useUpdate/index.html index ae35e3fa1..88148f9a5 100644 --- a/hooks/useUpdate/index.html +++ b/hooks/useUpdate/index.html @@ -5,7 +5,7 @@ useUpdate | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useUpdate

用于模拟重新渲染页面

代码演示

基础用法

高级用法

API

const update = useUpdate()
 
const update = useUpdate()
 

注意

通过改变变量,监听这个变量达到模拟的效果

Source

源码文档示例

- + diff --git a/hooks/useUrlState/index.html b/hooks/useUrlState/index.html index 330196bb5..7ee6bc2b5 100644 --- a/hooks/useUrlState/index.html +++ b/hooks/useUrlState/index.html @@ -5,7 +5,7 @@ useUrlState | VueHook Plus - + @@ -34,7 +34,7 @@ localStorageKey?: string }

Params

参数说明类型默认值
initialState默认值S | () => S-
options设置localStorageKey的话,若 url 没有参数,会使用存在 localStorage 的值UseUrlStateOptions-
routerPushFn一般来说,传 vue-router 的 router.push方法就行function-

Result

参数说明类型
state状态值-

Source

源码文档示例

- + diff --git a/hooks/useVirtualList/index.html b/hooks/useVirtualList/index.html index 05ccedeef..4ffcd5920 100644 --- a/hooks/useVirtualList/index.html +++ b/hooks/useVirtualList/index.html @@ -5,7 +5,7 @@ useVirtualList | VueHook Plus - + @@ -20,7 +20,7 @@
Skip to content
On this page

useVirtualList

快速使用虚拟列表

代码演示

基本用法

动态元素高度

API

import { useVirtualList } from 'vue-hooks-plus'
 
import { useVirtualList } from 'vue-hooks-plus'
 

Params

参数说明类型默认值
list包含大量数据的列表Ref<T[]>[]
options配置项Options-

Options

参数说明类型默认值
wrapperTarget内部容器,支持 DOM 节点或者 Ref 对象Ref<TargetValue<HTMLElement>>-
itemHeight行高度,静态高度可以直接写入像素值,动态高度可传入函数`number((index: number, data: T) => number)`
overscan视区上、下额外展示的 DOM 节点数量number5

Result

参数说明类型默认值
list当前需要展示的列表内容Ref<{ data: T, index: number }[]>-
ref外部容器,支持 DOM 节点或者 Ref 对象Ref<TargetValue<HTMLElement>>-
onScroll外部容器滚动绑定(e: any) => void-

Source

源码文档示例

- + diff --git a/hooks/useWebSocket/index.html b/hooks/useWebSocket/index.html index 7cdaeea8c..c0be73120 100644 --- a/hooks/useWebSocket/index.html +++ b/hooks/useWebSocket/index.html @@ -5,7 +5,7 @@ useWebSocket | VueHook Plus - + @@ -72,7 +72,7 @@ useWebSocket(socketUrl: string, options?: Options): Result;

Params

参数说明类型默认值
socketUrl必填,webSocket 地址string-
options可选,连接配置项Options-

Options

参数说明类型默认值
onOpenwebSocket 连接成功回调(event: WebSocketEventMap['open'], instance: WebSocket) => void-
onClosewebSocket 关闭回调(event: WebSocketEventMap['close'], instance: WebSocket) => void-
onMessagewebSocket 收到消息回调(message: WebSocketEventMap['message'], instance: WebSocket) => void-
onErrorwebSocket 错误回调(event: WebSocketEventMap['error'], instance: WebSocket) => void-
reconnectLimit重试次数number3
reconnectInterval重试时间间隔(ms)number3000
manual手动启动连接booleanfalse
protocols子协议string | string[]-

Result

参数说明类型
latestMessage最新消息Ref<WebSocketEventMap['message']>
sendMessage发送消息函数WebSocket['send']
disconnect手动断开 webSocket 连接() => void
connect手动连接 webSocket,如果当前已有连接,则关闭后重新连接() => void
readyState当前 webSocket 连接状态Ref<ReadyState>
webSocketInswebSocket 实例WebSocket

Source

源码文档示例

- + diff --git a/hooks/useWhyDidYouUpdate/index.html b/hooks/useWhyDidYouUpdate/index.html index 6bb704d19..c78923210 100644 --- a/hooks/useWhyDidYouUpdate/index.html +++ b/hooks/useWhyDidYouUpdate/index.html @@ -5,7 +5,7 @@ useWhyDidYouUpdate | VueHook Plus - + @@ -22,7 +22,7 @@
type IProps = Record<string, any>;
 useWhyDidYouUpdate(componentName: string, props: IProps): void;
 

Params

参数说明类型默认值
componentName必填,观测组件的名称string-
props必填,需要观测的数据(当前组件 state 或者传入的 props 等可能导致 rerender 的数据)Proxy<object>-

Result

打开控制台,可以看到改变的属性。

Source

源码文档示例

- + diff --git a/hooks/useWinResize/index.html b/hooks/useWinResize/index.html index ca52524c6..2a10b520b 100644 --- a/hooks/useWinResize/index.html +++ b/hooks/useWinResize/index.html @@ -5,7 +5,7 @@ useWinResize | VueHook Plus - + @@ -24,7 +24,7 @@ handler: (ev: Event) => void, );

Params

参数说明类型默认值
handler处理函数(ev: Event) => void-

Source

源码文档示例

- + diff --git a/hooks/useWorker/index.html b/hooks/useWorker/index.html index 5cd5d586d..ec99a1641 100644 --- a/hooks/useWorker/index.html +++ b/hooks/useWorker/index.html @@ -5,7 +5,7 @@ useWorker | VueHook Plus - + @@ -30,7 +30,7 @@ import { VueHooksPlusUseWorkerResolver } from '@vue-hooks-plus/resolvers'

使用方法

代码演示

Source

源码文档示例

- +