Skip to content

useShare

Category
Export Size
360 B
Last Changed
last week

Reactive Web Share API. 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.

Demo

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
import { 
ref
} from 'vue'
const
shareOptions
=
ref
<
ShareOptions
>({
text
: 'foo' })
const {
share
,
isSupported
} = useShare(
shareOptions
)
shareOptions
.value.text = 'bar'
share
()
js
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
<UseShareOptions>,
options
?:
ConfigurableNavigator
,
): {
isSupported
:
ComputedRef
<boolean>
share
: (
overrideOptions
?:
MaybeRefOrGetter
<UseShareOptions>) =>
Promise
<void>
} export type
UseShareReturn
=
ReturnType
<typeof
useShare
>

Source

SourceDemoDocs

Contributors

Anthony Fu
Antério Vieira
SerKo
Anthony Fu
Jelf
IlyaL
无尘室内点墨
三咲智子 Kevin Deng
Shinigami
João Eudes Lima

Changelog

v13.6.0 on
d32f8 - refactor: add @__NO_SIDE_EFFECTS__ annotations to all pure functions (#4907)
v12.8.0 on
7432f - feat(types): deprecate MaybeRef and MaybeRefOrGetter in favor of Vue's native (#4636)
v12.3.0 on
59f75 - feat(toValue): deprecate toValue from @vueuse/shared in favor of Vue's native
v10.0.0-beta.4 on
4d757 - feat(types)!: rename MaybeComputedRef to MaybeRefOrGetter
0a72b - feat(toValue): rename resolveUnref to toValue

Released under the MIT License.

Build faster with AI
New Masterclass to help you leverage AI in your Vue workflow
Get Early Access