Skip to content

useShare

Category
Export Size
345 B
Last Changed
2 months ago

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
} export interface UseShareReturn extends Supportable {
share
: (
overrideOptions
?:
MaybeRefOrGetter
<UseShareOptions>) =>
Promise
<void>
} /** * 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
,
): UseShareReturn

Source

SourceDemoDocs

Contributors

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

Changelog

v14.0.0-beta.1 on
61e1b - fix: improve the accuracy of sharing logic (#5048)
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

Released under the MIT License.

Build the skills AI cannot replace
Secure early access. 500 seats. Lowest entry price. 48 hours.
Join Waitlist
33
hours
:
03
minutes
:
06
seconds
: