W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Vant 3 是基于 Vue 3 開(kāi)發(fā)的,在使用 Vant 3 前,請(qǐng)將項(xiàng)目中的 Vue 升級(jí)到 3.0 以上版本。
Vant 2 到 Vant 3 存在一些不兼容更新,請(qǐng)仔細(xì)閱讀下方的不兼容更新內(nèi)容,并依次處理。
組件命名調(diào)整
GoodsAction 商品導(dǎo)航組件重命名為 ActionBar 行動(dòng)欄。
<!-- Vant 2 -->
<van-goods-action>
<van-goods-action-icon text="圖標(biāo)" />
<van-goods-action-button text="按鈕" />
</van-goods-action>
<!-- Vant 3 -->
<van-action-bar>
<van-action-bar-icon text="圖標(biāo)" />
<van-action-bar-button text="按鈕" />
</van-action-bar>
移除 SwitchCell 組件,可以直接使用 Cell 和 Switch 組件代替。
<!-- Vant 2 -->
<van-switch-cell title="標(biāo)題" v-model="checked" />
<!-- Vant 3 -->
<van-cell center title="標(biāo)題">
<template #right-icon>
<van-switch v-model="checked" size="24" />
</template>
</van-cell>
為了適配 Vue 3 的 v-model API 用法變更,所有提供 v-model 屬性的組件在用法上有一定調(diào)整。以下彈窗類(lèi)組件的 v-model 被重命名為 v-model:show:
<!-- Vant 2 -->
<van-popup v-model="show" />
<!-- Vant 3 -->
<van-popup v-model:show="show" />
以下表單型組件 v-model 對(duì)應(yīng)的 prop 重命名為 modelValue,event 重命名為 update:modelValue:
<!-- Vant 2 -->
<van-field :value="value" @input="onInput" />
<!-- Vant 3 -->
<van-field :model-value="value" @update:model-value="onInput" />
在之前的版本中,我們通過(guò) info 屬性來(lái)展示圖標(biāo)右上角的徽標(biāo)信息,為了更符合社區(qū)的命名習(xí)慣,我們將這個(gè)屬性重命名為 badge,影響以下組件:
同時(shí)內(nèi)部使用的 Info 組件也會(huì)重命名為 Badge。
<!-- Vant 2 -->
<van-icon info="5" />
<!-- Vant 3 -->
<van-icon badge="5" />
Vue 3.0 中增加了 Teleport 組件,提供將組件渲染到任意 DOM 位置的能力,Vant 2 也通過(guò) get-container 屬性提供了類(lèi)似的能力。為了與官方的 API 保持一致,Vant 中的 get-container 屬性將重命名為 teleport。
<!-- Vant 2 -->
<template>
<van-popup get-container="body" />
<van-popup :get-container="getContainer" />
</template>
<script>
export default {
methods: {
getContainer() {
return document.querySelector('#container');
},
},
};
</script>
<!-- Vant 3 -->
<template>
<van-popup teleport="body" />
<van-popup :teleport="container" />
</template>
<script>
export default {
beforeCreate() {
this.container = document.querySelector('#container');
},
};
</script>
Vant 2 中默認(rèn)提供了 $toast、$dialog 等全局方法,但 Vue 3.0 不再支持直接在 Vue 的原型鏈上掛載方法,因此從 Vant 3.0 開(kāi)始,使用全局方法前必須先通過(guò) app.use 將組件注冊(cè)到對(duì)應(yīng)的 app 上。
import { Toast, Dialog, Notify } from 'vant';
// 將 Toast 等組件注冊(cè)到 app 上
app.use(Toast);
app.use(Dialog);
app.use(Notify);
// app 內(nèi)的子組件可以直接調(diào)用 $toast 等方法
export default {
mounted() {
this.$toast('提示文案');
},
};
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: