W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
底部彈起的分享面板,用于展示各分享渠道對應的操作按鈕,不含具體的分享邏輯。2.6 版本開始支持此組件。
import Vue from 'vue';
import { ShareSheet } from 'vant';
Vue.use(ShareSheet);
分享面板通過 options
屬性來定義分享選項,數(shù)組的每一項是一個對象,對象格式見文檔下方表格。
<van-cell title="顯示分享面板" @click="showShare = true" />
<van-share-sheet
v-model="showShare"
title="立即分享給好友"
:options="options"
@select="onSelect"
/>
import { Toast } from 'vant';
export default {
data() {
return {
showShare: false,
options: [
{ name: '微信', icon: 'wechat' },
{ name: '微博', icon: 'weibo' },
{ name: '復制鏈接', icon: 'link' },
{ name: '分享海報', icon: 'poster' },
{ name: '二維碼', icon: 'qrcode' },
],
};
},
methods: {
onSelect(option) {
Toast(option.name);
this.showShare = false;
},
},
};
當分享選項的數(shù)量較多時,可以將 options
定義為數(shù)組嵌套的格式,每個子數(shù)組會作為一行選項展示。
<van-share-sheet
v-model="showShare"
title="立即分享給好友"
:options="options"
/>
export default {
data() {
return {
showShare: false,
options: [
[
{ name: '微信', icon: 'wechat' },
{ name: '朋友圈', icon: 'wechat-moments' },
{ name: '微博', icon: 'weibo' },
{ name: 'QQ', icon: 'qq' },
],
[
{ name: '復制鏈接', icon: 'link' },
{ name: '分享海報', icon: 'poster' },
{ name: '二維碼', icon: 'qrcode' },
{ name: '小程序碼', icon: 'weapp-qrcode' },
],
],
};
},
};
除了使用內置的幾種圖標外,可以直接在 icon
中傳入圖片 URL 來使用自定義的圖標。
<van-share-sheet v-model="showShare" :options="options" />
export default {
data() {
return {
showShare: false,
options: [
{
name: '名稱',
icon: 'https://img01.yzcdn.cn/vant/custom-icon-fire.png',
},
{
name: '名稱',
icon: 'https://img01.yzcdn.cn/vant/custom-icon-light.png',
},
{
name: '名稱',
icon: 'https://img01.yzcdn.cn/vant/custom-icon-water.png',
},
],
};
},
};
通過 description
屬性可以設置標題下方的描述文字, 在 options
內設置 description
屬性可以添加分享選項描述。
<van-share-sheet
v-model="showShare"
:options="options"
title="立即分享給好友"
description="描述信息"
/>
export default {
data() {
return {
showShare: false,
options: [
{ name: '微信', icon: 'wechat' },
{ name: '微博', icon: 'weibo' },
{ name: '復制鏈接', icon: 'link', description: '描述信息' },
{ name: '分享海報', icon: 'poster' },
{ name: '二維碼', icon: 'qrcode' },
],
};
},
};
參數(shù) | 說明 | 類型 | 默認值 |
---|---|---|---|
options | 分享選項 | Option[] | []
|
title | 頂部標題 | string | - |
cancel-text | 取消按鈕文字,傳入空字符串可以隱藏按鈕 | string | '取消'
|
description | 標題下方的輔助描述文字 | string | - |
duration | 動畫時長,單位秒 | number | string | 0.3
|
overlay | 是否顯示遮罩層 | boolean | true
|
lock-scroll | 是否鎖定背景滾動 | boolean | true
|
lazy-render | 是否在顯示彈層時才渲染內容 | boolean | true
|
close-on-popstate | 是否在頁面回退時自動關閉 | boolean | true
|
close-on-click-overlay | 是否在點擊遮罩層后關閉 | boolean | true
|
safe-area-inset-bottom | 是否開啟底部安全區(qū)適配 | boolean | true
|
get-container | 指定掛載的節(jié)點,用法示例 | string | () => Element | - |
options
屬性為一個對象數(shù)組,數(shù)組中的每個對象配置一列,對象可以包含以下值:
鍵名 | 說明 | 類型 |
---|---|---|
name | 分享渠道名稱 | string |
description v2.8.5
|
分享選項描述 | string |
icon | 圖標,可選值為 wechat weibo qq link qrcode poster weapp-qrcode wechat-moments ,支持傳入圖片 URL |
string |
className | 分享選項類名 | string |
事件名 | 說明 | 回調參數(shù) |
---|---|---|
select | 點擊分享選項時觸發(fā) | option: Option, index: number |
cancel | 點擊取消按鈕時觸發(fā) | - |
click-overlay v2.9.1
|
點擊遮罩層時觸發(fā) | - |
名稱 | 說明 |
---|---|
title | 自定義頂部標題 |
description | 自定義描述文字 |
組件提供了下列 Less 變量,可用于自定義樣式,使用方法請參考主題定制。
名稱 | 默認值 | 描述 |
---|---|---|
@share-sheet-header-padding | @padding-sm @padding-md @padding-base
|
- |
@share-sheet-title-color | @text-color
|
- |
@share-sheet-title-font-size | @font-size-md
|
- |
@share-sheet-title-line-height | @line-height-md
|
- |
@share-sheet-description-color | @gray-6
|
- |
@share-sheet-description-font-size | @font-size-sm
|
- |
@share-sheet-description-line-height | 16px
|
- |
@share-sheet-icon-size | 48px
|
- |
@share-sheet-option-name-color | @gray-7
|
- |
@share-sheet-option-name-font-size | @font-size-sm
|
- |
@share-sheet-option-description-color | @gray-5
|
- |
@share-sheet-option-description-font-size | @font-size-sm
|
- |
@share-sheet-cancel-button-font-size | @font-size-lg
|
- |
@share-sheet-cancel-button-height | 48px
|
- |
@share-sheet-cancel-button-background | @white
|
- |
在不同的 App 或瀏覽器中,存在各式各樣的分享接口或分享方式,因此 ShareSheet 組件不提供具體的分享邏輯,需要開發(fā)者根據(jù)業(yè)務場景自行實現(xiàn)。
由于微信未提供分享相關的 API,需要引導用戶點擊右上角進行分享。
可以通過 JSBridge 調用原生應用的 SDK 進行分享。
可以通過 Popup 組件以彈層的形式展示圖片,然后引導用戶保存圖片進行分享。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: