kliping.pro
  • Docs
  • Explore
  • Builder
  • Directory
  • Colors
  • Typeset
Saved
Hooks
  • Getting Started2
  • State7
  • Advanced6
  • Lifecycle16
  • Browser21
  • useActiveElement
  • useBattery
  • useClickAnyWhere
  • useClickAway
  • useClipboard
  • useDocumentVisibility
  • useElementSize
  • useEventListener
  • useFps
  • useFullscreen
  • useHash
  • useHover
  • useInViewport
  • useIsMatchMedia
  • useIsOnline
  • useMouse
  • useNetwork
  • useOs
  • useScrollLock
  • useTextSelection
  • useTitle
  • Development1
  • Third-Party4
  • Libraries4
  1. Hooks
  2. Browser
  3. useHash

useHash

PreviousNext

Bagian # dari alamat halaman, yang bisa dibaca dan ditulis.

Bagian # dari alamat halaman, yang bisa dibaca dan ditulis.

Menulis ke sini mengubah alamatnya, dan itu memicu hashchange yang lalu membaca balik nilainya — jadi satu sumber kebenaran, bukan dua yang harus dijaga tetap sama. Perubahan dari luar (tombol kembali, tautan #bagian, kode lain) ikut terbaca tanpa perlakuan khusus.

Kosong saat dirender di server: di sana tidak ada alamat yang bisa dibaca, dan # memang tidak pernah dikirim ke server oleh peramban mana pun.

Installation ​

pnpm dlx kliping@latest add use-hash

Ikut terpasang sendiri: is-browser, try-on-mounted, use-event-listener.

Salin dulu is-browser, try-on-mounted, target, use-event-listener — masing-masing memuat sumbernya di halamannya sendiri — lalu tempel berkas ini.

ts
import { customRef } from 'vue'
import { isBrowser } from '@/lib/is-browser'
import { tryOnMounted } from '@/lib/try-on-mounted'
import { useEventListener } from '@/composables/use-event-listener'

export function useHash() {
  let value = ''
  let notify: (() => void) | undefined

  const read = () => (isBrowser ? window.location.hash : '')

  const update = () => {
    const next = read()
    if (next === value) return
    value = next
    notify?.()
  }

  const hash = customRef<string>((track, trigger) => {
    notify = trigger
    return {
      get() {
        track()
        return value
      },
      set(next) {
        if (!isBrowser) {
          value = next
          trigger()
          return
        }
        window.location.hash = next
      },
    }
  })

  tryOnMounted(update)
  useEventListener('hashchange', update)

  return hash
}

Requirements ​

RequirementValue
ProjectVue 3.5+, alias @ — disiapkan kliping init
Kliping itemsis-browser, try-on-mounted, use-event-listener
Filescomposables/use-hash.ts

API Reference ​

ts
export function useHash()

Parameters ​

Tanpa parameter.

Returns ​

Ref<string, string>

Credits ​

Berasal dari shadcn-hooks (MIT, Copyright (c) 2025 Brendan Dash). Rantai lengkapnya di Credits.

PrevioususeFullscreenNext useHover

On This Page

InstallationRequirementsAPI ReferenceParametersReturnsCredits

© 2026 Kliping. Free components are open source under the MIT License.

LicenseCreditsRoadmap