⬅️ Back to Table of Contents
📄 index.ts
📊 Analysis Summary
Metric |
Count |
🔧 Functions |
1 |
📦 Imports |
10 |
📊 Variables & Constants |
2 |
🟢 Vue Composition API |
1 |
📚 Table of Contents
🛠️ File Location:
📂 packages/router/useRouteHash/index.ts
📦 Imports
Name |
Source |
MaybeRefOrGetter |
vue |
ReactiveRouteOptions |
../_types |
RouteHashValueRaw |
../_types |
tryOnScopeDispose |
@vueuse/shared |
customRef |
vue |
nextTick |
vue |
toValue |
vue |
watch |
vue |
useRoute |
vue-router |
useRouter |
vue-router |
Variables & Constants
Name |
Type |
Kind |
Value |
Exported |
_hash |
RouteHashValueRaw |
let/var |
*not shown* |
✗ |
_trigger |
() => void |
let/var |
*not shown* |
✗ |
Vue Composition API
Name |
Type |
Reactive Variables |
Composables |
watch |
watch |
none |
none |
Functions
`useRouteHash(defaultValue: MaybeRefOrGetter, {
mode = 'replace',
route = useRoute(),
router = useRouter(),
}: ReactiveRouteOptions): any`
Code
export function useRouteHash(
defaultValue?: MaybeRefOrGetter<RouteHashValueRaw>,
{
mode = 'replace',
route = useRoute(),
router = useRouter(),
}: ReactiveRouteOptions = {},
) {
_hash = route.hash
tryOnScopeDispose(() => {
_hash = undefined
})
let _trigger: () => void
const proxy = customRef<RouteHashValueRaw>((track, trigger) => {
_trigger = trigger
return {
get() {
track()
return _hash || toValue(defaultValue)
},
set(v) {
if (v === _hash)
return
_hash = v === null ? undefined : v
trigger()
nextTick(() => {
const { params, query } = route
router[toValue(mode)]({ params, query, hash: _hash as string })
})
},
}
})
watch(
() => route.hash,
() => {
if (route.hash === _hash)
return
_hash = route.hash
_trigger()
},
{ flush: 'sync' },
)
return proxy
}
- Parameters:
defaultValue: MaybeRefOrGetter<RouteHashValueRaw>
{
mode = 'replace',
route = useRoute(),
router = useRouter(),
}: ReactiveRouteOptions
- Return Type:
any
- Calls:
tryOnScopeDispose (from @vueuse/shared)
customRef (from vue)
track
toValue (from vue)
trigger
nextTick (from vue)
complex_call_997
watch (from vue)
_trigger