apps/mantine.dev/src/pages/hooks/use-hash.mdx
import { UseHashDemos } from '@docs/demos'; import { Layout } from '@/layout'; import { MDX_DATA } from '@/mdx';
export default Layout(MDX_DATA.useHash);
The use-hash hook returns the hash from the URL, subscribes to its changes with the hashchange event,
and allows you to change it with the setHash function:
By default, use-hash will retrieve the value in useEffect. If you want to get the initial value
as soon as the hook is called, set getInitialValueInEffect to false. Note that this option is
not compatible with server-side rendering – you can only use it if your app is client-side only.
import { Button } from '@mantine/core';
import { useHash } from '@mantine/hooks';
function Demo() {
const [hash, setHash] = useHash({ getInitialValueInEffect: false });
return (
<Button onClick={() => setHash('new-hash')}>Change hash</Button>
);
}
interface UseHashOptions {
getInitialValueInEffect?: boolean;
}
type UseHashReturnValue = [string, (value: string) => void];
function useHash(options?: UseHashOptions): UseHashReturnValue
The UseHashOptions and UseHashReturnValue types are exported from @mantine/hooks;
you can import them in your application:
import { UseHashOptions, UseHashReturnValue } from '@mantine/hooks';