Skip to content

Button 按鈕 - Vant 4

Button 按鈕

🎯 介紹

按鈕是使用者介面中最常見的互動元素!無論是提交表單、觸發操作,還是引導使用者進行下一步,按鈕都是不可或缺的好幫手。Vant 的按鈕元件為你提供了豐富的樣式和功能,讓你的應用更加美觀和易用。

📦 引入

透過以下方式來全域註冊元件,更多註冊方式請參考元件註冊

js
import { createApp } from 'vue';
import { Button } from 'vant';

const app = createApp();
app.use(Button);

🚀 程式碼演示

按鈕類型

Vant 為你準備了五種不同風格的按鈕類型:default(預設)、primary(主要)、success(成功)、warning(警告)、danger(危險)。每種類型都有獨特的顏色和含義,幫你更好地傳達操作意圖。

html
<van-button type="default">預設按鈕</van-button>
<van-button type="primary">主要按鈕</van-button>
<van-button type="success">成功按鈕</van-button>
<van-button type="warning">警告按鈕</van-button>
<van-button type="danger">危險按鈕</van-button>

樸素按鈕

想要一個更加簡潔的按鈕樣式?試試樸素按鈕吧!透過 plain 屬性,按鈕會變成白色背景,文字保持原有顏色,給人一種清爽的感覺。

html
<van-button plain type="primary">樸素按鈕</van-button>
<van-button plain type="success">樸素按鈕</van-button>

細邊框

追求極致的視覺效果?設定 hairline 屬性可以展示 0.5px 的超細邊框,讓你的按鈕看起來更加精緻!

html
<van-button plain hairline type="primary">細邊框按鈕</van-button>
<van-button plain hairline type="success">細邊框按鈕</van-button>

禁用狀態

有時候我們需要暫時「凍結」某個按鈕,比如表單驗證未通過時。透過 disabled 屬性,按鈕會變成灰色且無法點擊,清楚地告訴使用者目前不可操作。

html
<van-button disabled type="primary">禁用狀態</van-button>
<van-button disabled type="success">禁用狀態</van-button>

載入狀態

透過 loading 屬性設定按鈕為載入狀態,載入狀態下預設會隱藏按鈕文字,可以透過 loading-text 設定載入狀態下的文字。

html

按鈕形狀

透過 square 設定方形按鈕,透過 round 設定圓形按鈕。

html

圖示按鈕

透過 icon 屬性設定按鈕圖示,支援 Icon 元件裡的所有圖示,也可以傳入圖示 URL。

html

按鈕尺寸

支援 largenormalsmallmini 四種尺寸,預設為 normal

html

塊級元素

按鈕在預設情況下為行內塊級元素,透過 block 屬性可以將按鈕的元素類型設定為塊級元素。

html

頁面導航

可以透過 url 屬性進行 URL 跳轉,或透過 to 屬性進行路由跳轉。

html

自訂顏色

透過 color 屬性可以自訂按鈕的顏色。

html

動畫按鈕

搭配 Button 和 Swipe 元件,可以實現垂直滾動的動畫按鈕效果。

html

API

Props

參數說明類型預設值
type類型,可選值為 primary``success``warning``dangerstringdefault
size尺寸,可選值為 large``small``ministringnormal
text按鈕文字string-
color按鈕顏色,支援傳入 linear-gradient 漸變色string-
icon左側圖示名稱或圖片連結,等同於 Icon 元件的 name 屬性string-

| icon-prefix | 圖示類名前綴,等同於 Icon 元件的 class-prefix 屬性 | string | van-icon |

| icon-position | 圖示展示位置,可選值為 right | string | left | | tag | 按鈕根節點的 HTML 標籤 | string | button | | native-type | 原生 button 標籤的 type 屬性 | string | button | | block | 是否為塊級元素 | boolean | false | | plain | 是否為樸素按鈕 | boolean | false | | square | 是否為方形按鈕 | boolean | false | | round | 是否為圓形按鈕 | boolean | false | | disabled | 是否禁用按鈕 | boolean | false | | hairline | 是否使用 0.5px 邊框 | boolean | false | | loading | 是否顯示為載入狀態 | boolean | false | | loading-text | 載入狀態提示文字 | string | - | | loading-type | 載入圖示類型,可選值為 spinner | string | circular |

| loading-size | 載入圖示大小,預設單位為 px | number | string | 20px | | url | 點擊後跳轉的連結地址 | string | - | | to | 點擊後跳轉的目標路由物件,等同於 Vue Router 的 to 屬性 | string | object | - |

| replace | 是否在跳轉時替換目前頁面歷史 | boolean | false |

Events

事件名說明回調參數
click點擊按鈕,且按鈕狀態不為載入或禁用時觸發event: MouseEvent
touchstart開始觸摸按鈕時觸發event: TouchEvent

Slots

名稱說明
default按鈕內容
icon自訂圖示
loading自訂載入圖示

類型定義

元件匯出以下類型定義:

ts
importtype { ButtonType, ButtonSize, ButtonProps, ButtonNativeType, ButtonIconPosition, } from'vant';

主題定制

樣式變數

元件提供了下列 CSS 變數,可用於自訂樣式,使用方法請參考 ConfigProvider 元件

名稱預設值描述
--van-button-mini-height24px-
--van-button-mini-padding0 var(--van-padding-base)-
--van-button-mini-font-sizevar(--van-font-size-xs)-
--van-button-small-height32px-
--van-button-small-padding0 var(--van-padding-xs)-
--van-button-small-font-sizevar(--van-font-size-sm)-
--van-button-normal-font-sizevar(--van-font-size-md)-
--van-button-normal-padding0 15px-
--van-button-large-height50px-
--van-button-default-height44px-
--van-button-default-line-height1.2-
--van-button-default-font-sizevar(--van-font-size-lg)-
--van-button-default-colorvar(--van-text-color)-
--van-button-default-backgroundvar(--van-background-2)-
--van-button-default-border-colorvar(--van-gray-4)-
--van-button-primary-colorvar(--van-white)-
--van-button-primary-backgroundvar(--van-primary-color)-
--van-button-primary-border-colorvar(--van-primary-color)-
--van-button-success-colorvar(--van-white)-
--van-button-success-backgroundvar(--van-success-color)-
--van-button-success-border-colorvar(--van-success-color)-
--van-button-danger-colorvar(--van-white)-
--van-button-danger-backgroundvar(--van-danger-color)-
--van-button-danger-border-colorvar(--van-danger-color)-
--van-button-warning-colorvar(--van-white)-
--van-button-warning-backgroundvar(--van-orange)-
--van-button-warning-border-colorvar(--van-orange)-
--van-button-border-widthvar(--van-border-width)-
--van-button-radiusvar(--van-radius-md)-
--van-button-round-radiusvar(--van-radius-max)-
--van-button-plain-backgroundvar(--van-white)-
--van-button-disabled-opacityvar(--van-disabled-opacity)-
--van-button-icon-size1.2em-
--van-button-loading-icon-size20px-

📝 總結

Button 按鈕元件是使用者介面中的核心互動元素!🎯 它不僅僅是一個簡單的點擊區域,更是連接使用者意圖與應用功能的重要橋樑。從基礎的文字按鈕到炫酷的動畫效果,Vant 的按鈕元件為你提供了無限的可能性。

🎯 核心特性

  • 🎨 豐富樣式:五種類型、多種尺寸、樸素風格任你選擇
  • 🎭 狀態管理:載入、禁用、激活狀態一應俱全
  • 🎪 形狀變化:方形、圓形、塊級元素靈活切換
  • 🎨 自訂顏色:支援漸變色,打造獨特視覺效果
  • 🚀 導航功能:URL跳轉、路由導航輕鬆實現
  • 動畫效果:配合其他元件創造驚艷的互動體驗

從簡單的確認操作到複雜的表單提交,從頁面導航到動畫展示,Button 讓你的應用互動更加出色!

🔗 相關內容

基於Vant構建的企業級移動端解決方案