Vant3 Progress 進度條

2021-09-14 11:16 更新

介紹

用于展示操作的當前進度。

實例演示

引入

通過以下方式來全局注冊組件,更多注冊方式請參考組件注冊

import { createApp } from 'vue';
import { Progress } from 'vant';

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

代碼演示

基礎(chǔ)用法

進度條默認為藍色,使用 percentage 屬性來設(shè)置當前進度。

<van-progress :percentage="50" />

線條粗細

通過 stroke-width 可以設(shè)置進度條的粗細。

<van-progress :percentage="50" stroke-width="8" />

置灰

設(shè)置 inactive 屬性后進度條將置灰。

<van-progress inactive :percentage="50" />

樣式定制

可以使用 pivot-text 屬性自定義文字,color 屬性自定義進度條顏色。

<van-progress pivot-text="橙色" color="#f2826a" :percentage="25" />
<van-progress pivot-text="紅色" color="#ee0a24" :percentage="50" />
<van-progress
  :percentage="75"
  pivot-text="紫色"
  pivot-color="#7232dd"
  color="linear-gradient(to right, #be99ff, #7232dd)"
/>

API

Props

參數(shù) 說明 類型 默認值
percentage 進度百分比 number | string 0
stroke-width 進度條粗細,默認單位為px number | string 4px
color 進度條顏色 string #1989fa
track-color 軌道顏色 string #e5e5e5
pivot-text 進度文字內(nèi)容 string 百分比
pivot-color 進度文字背景色 string 同進度條顏色
text-color 進度文字顏色 string white
inactive 是否置灰 boolean false
show-pivot 是否顯示進度文字 boolean true

方法

通過 ref 可以獲取到 Progress 實例并調(diào)用實例方法,詳見組件實例方法。

方法名 說明 參數(shù) 返回值
resize 外層元素大小變化后,可以調(diào)用此方法來觸發(fā)重繪 - -

樣式變量

組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請參考ConfigProvider 組件。

名稱 默認值 描述
--van-progress-height 4px -
--van-progress-color var(--van-primary-color) -
--van-progress-background-color var(--van-gray-3) -
--van-progress-pivot-padding 0 5px -
--van-progress-pivot-text-color var(--van-white) -
--van-progress-pivot-font-size var(--van-font-size-xs) -
--van-progress-pivot-line-height 1.6 -
--van-progress-pivot-background-color var(--van-primary-color) -

常見問題

組件從隱藏狀態(tài)切換到顯示狀態(tài)時,渲染不正確?

Progress 組件在掛載時,會獲取自身的寬度,并計算出進度條的樣式。如果組件一開始處于隱藏狀態(tài),則獲取到的寬度永遠為 0,因此無法展示正確的進度。

解決方法

方法一,如果是使用 v-show 來控制組件展示的,則替換為 v-if 即可解決此問題:

<!-- Before -->
<van-progress v-show="show" />
<!-- After -->
<van-progress v-if="show" />

方法二,調(diào)用組件的 resize 方法來主動觸發(fā)重繪:

<van-progress v-show="show" ref="progress" />
this.$refs.progress.resize();


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號