@vueuse/router
Advanced tools
Comparing version 10.5.0 to 10.6.0
@@ -161,3 +161,3 @@ var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) { | ||
const _cache$1 = /* @__PURE__ */ new WeakMap(); | ||
const _queue$1 = /* @__PURE__ */ new WeakMap(); | ||
function useRouteParams(name, defaultValue, options = {}) { | ||
@@ -170,9 +170,9 @@ const { | ||
} = options; | ||
if (!_cache$1.has(route)) | ||
_cache$1.set(route, /* @__PURE__ */ new Map()); | ||
const _params = _cache$1.get(route); | ||
if (!_queue$1.has(router)) | ||
_queue$1.set(router, /* @__PURE__ */ new Map()); | ||
const _paramsQueue = _queue$1.get(router); | ||
let param = route.params[name]; | ||
shared.tryOnScopeDispose(() => { | ||
_params.delete(name); | ||
param = void 0; | ||
}); | ||
_params.set(name, route.params[name]); | ||
let _trigger; | ||
@@ -184,11 +184,15 @@ const proxy = vueDemi.customRef((track, trigger) => { | ||
track(); | ||
const data = _params.get(name); | ||
return transform(data !== void 0 ? data : shared.toValue(defaultValue)); | ||
return transform(param !== void 0 ? param : shared.toValue(defaultValue)); | ||
}, | ||
set(v) { | ||
if (_params.get(name) === v) | ||
if (param === v) | ||
return; | ||
_params.set(name, v); | ||
param = v; | ||
_paramsQueue.set(name, v); | ||
trigger(); | ||
vueDemi.nextTick(() => { | ||
if (_paramsQueue.size === 0) | ||
return; | ||
const newParams = Object.fromEntries(_paramsQueue.entries()); | ||
_paramsQueue.clear(); | ||
const { params, query, hash } = route; | ||
@@ -198,3 +202,3 @@ router[shared.toValue(mode)]({ | ||
...params, | ||
...Object.fromEntries(_params.entries()) | ||
...newParams | ||
}, | ||
@@ -211,3 +215,3 @@ query, | ||
(v) => { | ||
_params.set(name, v); | ||
param = v; | ||
_trigger(); | ||
@@ -220,3 +224,3 @@ }, | ||
const _cache = /* @__PURE__ */ new WeakMap(); | ||
const _queue = /* @__PURE__ */ new WeakMap(); | ||
function useRouteQuery(name, defaultValue, options = {}) { | ||
@@ -229,9 +233,9 @@ const { | ||
} = options; | ||
if (!_cache.has(route)) | ||
_cache.set(route, /* @__PURE__ */ new Map()); | ||
const _query = _cache.get(route); | ||
if (!_queue.has(router)) | ||
_queue.set(router, /* @__PURE__ */ new Map()); | ||
const _queriesQueue = _queue.get(router); | ||
let query = route.query[name]; | ||
shared.tryOnScopeDispose(() => { | ||
_query.delete(name); | ||
query = void 0; | ||
}); | ||
_query.set(name, route.query[name]); | ||
let _trigger; | ||
@@ -243,15 +247,19 @@ const proxy = vueDemi.customRef((track, trigger) => { | ||
track(); | ||
const data = _query.get(name); | ||
return transform(data !== void 0 ? data : shared.toValue(defaultValue)); | ||
return transform(query !== void 0 ? query : shared.toValue(defaultValue)); | ||
}, | ||
set(v) { | ||
if (_query.get(name) === v) | ||
if (query === v) | ||
return; | ||
_query.set(name, v); | ||
query = v; | ||
_queriesQueue.set(name, v); | ||
trigger(); | ||
vueDemi.nextTick(() => { | ||
const { params, query, hash } = route; | ||
if (_queriesQueue.size === 0) | ||
return; | ||
const newQueries = Object.fromEntries(_queriesQueue.entries()); | ||
_queriesQueue.clear(); | ||
const { params, query: query2, hash } = route; | ||
router[shared.toValue(mode)]({ | ||
params, | ||
query: { ...query, ...Object.fromEntries(_query.entries()) }, | ||
query: { ...query2, ...newQueries }, | ||
hash | ||
@@ -266,3 +274,3 @@ }); | ||
(v) => { | ||
_query.set(name, v); | ||
query = v; | ||
_trigger(); | ||
@@ -269,0 +277,0 @@ }, |
@@ -1,1 +0,1 @@ | ||
var VueDemi=function(n,t,d){if(n.install)return n;if(!t)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),n;if(t.version.slice(0,4)==="2.7."){let c=function(u,v){var a,_={},s={config:t.config,use:t.use.bind(t),mixin:t.mixin.bind(t),component:t.component.bind(t),provide:function(l,i){return _[l]=i,this},directive:function(l,i){return i?(t.directive(l,i),s):t.directive(l)},mount:function(l,i){return a||(a=new t(Object.assign({propsData:v},u,{provide:Object.assign(_,u.provide)})),a.$mount(l,i),a)},unmount:function(){a&&(a.$destroy(),a=void 0)}};return s};var y=c;for(var e in t)n[e]=t[e];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=t,n.Vue2=t,n.version=t.version,n.warn=t.util.warn,n.hasInjectionContext=()=>!!n.getCurrentInstance(),n.createApp=c}else if(t.version.slice(0,2)==="2.")if(d){for(var e in d)n[e]=d[e];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=t,n.Vue2=t,n.version=t.version,n.hasInjectionContext=()=>!!n.getCurrentInstance()}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(t.version.slice(0,2)==="3."){for(var e in t)n[e]=t[e];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=t,n.Vue2=void 0,n.version=t.version,n.set=function(c,u,v){return Array.isArray(c)?(c.length=Math.max(c.length,u),c.splice(u,1,v),v):(c[u]=v,v)},n.del=function(c,u){if(Array.isArray(c)){c.splice(u,1);return}delete c[u]}}else console.error("[vue-demi] Vue version "+t.version+" is unsupported.");return n}(this.VueDemi=this.VueDemi||(typeof VueDemi<"u"?VueDemi:{}),this.Vue||(typeof Vue<"u"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI<"u"?VueCompositionAPI:void 0));(function(n,t,d,e){"use strict";let y;function c(s,{mode:l="replace",route:i=d.useRoute(),router:b=d.useRouter()}={}){y=i.hash,e.tryOnScopeDispose(()=>{y=void 0});let o;const g=t.customRef((R,r)=>(o=r,{get(){return R(),y||e.toValue(s)},set(h){h!==y&&(y=h===null?void 0:h,r(),t.nextTick(()=>{const{params:w,query:f}=i;b[e.toValue(l)]({params:w,query:f,hash:y})}))}}));return t.watch(()=>i.hash,()=>{y=i.hash,o()},{flush:"sync"}),g}const u=new WeakMap;function v(s,l,i={}){const{mode:b="replace",route:o=d.useRoute(),router:g=d.useRouter(),transform:R=f=>f}=i;u.has(o)||u.set(o,new Map);const r=u.get(o);e.tryOnScopeDispose(()=>{r.delete(s)}),r.set(s,o.params[s]);let h;const w=t.customRef((f,x)=>(h=x,{get(){f();const p=r.get(s);return R(p!==void 0?p:e.toValue(l))},set(p){r.get(s)!==p&&(r.set(s,p),x(),t.nextTick(()=>{const{params:q,query:A,hash:O}=o;g[e.toValue(b)]({params:{...q,...Object.fromEntries(r.entries())},query:A,hash:O})}))}}));return t.watch(()=>o.params[s],f=>{r.set(s,f),h()},{flush:"sync"}),w}const a=new WeakMap;function _(s,l,i={}){const{mode:b="replace",route:o=d.useRoute(),router:g=d.useRouter(),transform:R=f=>f}=i;a.has(o)||a.set(o,new Map);const r=a.get(o);e.tryOnScopeDispose(()=>{r.delete(s)}),r.set(s,o.query[s]);let h;const w=t.customRef((f,x)=>(h=x,{get(){f();const p=r.get(s);return R(p!==void 0?p:e.toValue(l))},set(p){r.get(s)!==p&&(r.set(s,p),x(),t.nextTick(()=>{const{params:q,query:A,hash:O}=o;g[e.toValue(b)]({params:q,query:{...A,...Object.fromEntries(r.entries())},hash:O})}))}}));return t.watch(()=>o.query[s],f=>{r.set(s,f),h()},{flush:"sync"}),w}n.useRouteHash=c,n.useRouteParams=v,n.useRouteQuery=_})(this.VueUse=this.VueUse||{},VueDemi,VueRouter,VueUse); | ||
var VueDemi=function(t,n,d){if(t.install)return t;if(!n)return console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`."),t;if(n.version.slice(0,4)==="2.7."){let o=function(i,v){var u,g={},c={config:n.config,use:n.use.bind(n),mixin:n.mixin.bind(n),component:n.component.bind(n),provide:function(a,s){return g[a]=s,this},directive:function(a,s){return s?(n.directive(a,s),c):n.directive(a)},mount:function(a,s){return u||(u=new n(Object.assign({propsData:v},i,{provide:Object.assign(g,i.provide)})),u.$mount(a,s),u)},unmount:function(){u&&(u.$destroy(),u=void 0)}};return c};var y=o;for(var e in n)t[e]=n[e];t.isVue2=!0,t.isVue3=!1,t.install=function(){},t.Vue=n,t.Vue2=n,t.version=n.version,t.warn=n.util.warn,t.hasInjectionContext=()=>!!t.getCurrentInstance(),t.createApp=o}else if(n.version.slice(0,2)==="2.")if(d){for(var e in d)t[e]=d[e];t.isVue2=!0,t.isVue3=!1,t.install=function(){},t.Vue=n,t.Vue2=n,t.version=n.version,t.hasInjectionContext=()=>!!t.getCurrentInstance()}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(n.version.slice(0,2)==="3."){for(var e in n)t[e]=n[e];t.isVue2=!1,t.isVue3=!0,t.install=function(){},t.Vue=n,t.Vue2=void 0,t.version=n.version,t.set=function(o,i,v){return Array.isArray(o)?(o.length=Math.max(o.length,i),o.splice(i,1,v),v):(o[i]=v,v)},t.del=function(o,i){if(Array.isArray(o)){o.splice(i,1);return}delete o[i]}}else console.error("[vue-demi] Vue version "+n.version+" is unsupported.");return t}(this.VueDemi=this.VueDemi||(typeof VueDemi<"u"?VueDemi:{}),this.Vue||(typeof Vue<"u"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI<"u"?VueCompositionAPI:void 0));(function(t,n,d,e){"use strict";let y;function o(c,{mode:a="replace",route:s=d.useRoute(),router:q=d.useRouter()}={}){y=s.hash,e.tryOnScopeDispose(()=>{y=void 0});let h;const l=n.customRef((R,f)=>(h=f,{get(){return R(),y||e.toValue(c)},set(r){r!==y&&(y=r===null?void 0:r,f(),n.nextTick(()=>{const{params:w,query:x}=s;q[e.toValue(a)]({params:w,query:x,hash:y})}))}}));return n.watch(()=>s.hash,()=>{y=s.hash,h()},{flush:"sync"}),l}const i=new WeakMap;function v(c,a,s={}){const{mode:q="replace",route:h=d.useRoute(),router:l=d.useRouter(),transform:R=p=>p}=s;i.has(l)||i.set(l,new Map);const f=i.get(l);let r=h.params[c];e.tryOnScopeDispose(()=>{r=void 0});let w;const x=n.customRef((p,_)=>(w=_,{get(){return p(),R(r!==void 0?r:e.toValue(a))},set(b){r!==b&&(r=b,f.set(c,b),_(),n.nextTick(()=>{if(f.size===0)return;const A=Object.fromEntries(f.entries());f.clear();const{params:O,query:j,hash:I}=h;l[e.toValue(q)]({params:{...O,...A},query:j,hash:I})}))}}));return n.watch(()=>h.params[c],p=>{r=p,w()},{flush:"sync"}),x}const u=new WeakMap;function g(c,a,s={}){const{mode:q="replace",route:h=d.useRoute(),router:l=d.useRouter(),transform:R=p=>p}=s;u.has(l)||u.set(l,new Map);const f=u.get(l);let r=h.query[c];e.tryOnScopeDispose(()=>{r=void 0});let w;const x=n.customRef((p,_)=>(w=_,{get(){return p(),R(r!==void 0?r:e.toValue(a))},set(b){r!==b&&(r=b,f.set(c,b),_(),n.nextTick(()=>{if(f.size===0)return;const A=Object.fromEntries(f.entries());f.clear();const{params:O,query:j,hash:I}=h;l[e.toValue(q)]({params:O,query:{...j,...A},hash:I})}))}}));return n.watch(()=>h.query[c],p=>{r=p,w()},{flush:"sync"}),x}t.useRouteHash=o,t.useRouteParams=v,t.useRouteQuery=g})(this.VueUse=this.VueUse||{},VueDemi,VueRouter,VueUse); |
{ | ||
"name": "@vueuse/router", | ||
"version": "10.5.0", | ||
"version": "10.6.0", | ||
"description": "Utilities for vue-router", | ||
@@ -40,3 +40,3 @@ "author": "Anthony Fu <https://github.com/antfu>", | ||
"dependencies": { | ||
"@vueuse/shared": "10.5.0", | ||
"@vueuse/shared": "10.6.0", | ||
"vue-demi": ">=0.14.6" | ||
@@ -43,0 +43,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
27106
633
+ Added@vueuse/shared@10.6.0(transitive)
- Removed@vueuse/shared@10.5.0(transitive)
Updated@vueuse/shared@10.6.0