--- category: Browser --- # useShare Reactive [Web Share API](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share). The Browser provides features that can share content in text or file. > The `share` method has to be called following a user gesture like a button click. It can’t simply be called on page load for example. That’s in place to help prevent abuse. ## Usage ```ts import { useShare } from '@vueuse/core'; const { share, isSupported } = useShare(); function startShare() { share({ title: 'Hello', text: 'Hello my friend!', url: location.href, }); } ``` ### Passing a source ref You can pass a `ref` to it, changes from the source ref will be reflected to your sharing options. ```ts {6} import { ref } from 'vue'; const shareOptions = ref({ text: 'foo' }); const { share, isSupported } = useShare(shareOptions); shareOptions.value.text = 'bar'; share(); ``` ## Type Declarations ```ts export interface UseShareOptions { title?: string; files?: File[]; text?: string; url?: string; } /** * Reactive Web Share API. * * @see https://vueuse.org/useShare * @param shareOptions * @param options * * @__NO_SIDE_EFFECTS__ */ export declare function useShare( shareOptions?: MaybeRefOrGetter, options?: ConfigurableNavigator, ): { isSupported: ComputedRef; share: (overrideOptions?: MaybeRefOrGetter) => Promise; }; export type UseShareReturn = ReturnType; ```