Vant Weapp的dialog組件在mpvue小程序中使用註意事項
阿新 • • 發佈:2018-12-22
異步 prim -a alert omd one pre 密碼 async 問題
Dialog組件支持函數調用和組件調用兩種形式,而一般的組件僅支持後者。顯然,函數調用方式的支持增加了組件使用的靈活性,但是也隨之出現另外幾個值得註意的問題。
兩種方式使用舉例
在我的mpvue工程測試中,針對dialog組件我專門創建了一個測試文件夾test_dialog,其中包含如下三個文件:
- index.vue
- main.js
- main.json
上述三個文件的作用相信各位都明白。註意,我把vant-weapp組件庫×××後存放到static目錄下:
/static/vant/各個組件對應子文件夾。
其中,main.json內容如下:
{ "navigationBarTitleText": "test_tabbar_page", "usingComponents": { "van-button": "/static/vant/button/index", "van-icon": "/static/vant/icon/index", "van-area": "/static/vant/area/index", "van-dialog":"/static/vant/dialog/index", "van-field": "/static/vant/field/index" } }
main.js文件內容固定不變。
index.vue文件內容如下:
<template> <div> <div> <van-button plain type="primary" class="demo-margin-right" @click="onClickAlert" > 消息提示 </van-button> <van-dialog id="van-dialog" /> </div> <div > <van-button plain type="danger" @click="showCustomDialog" > 組件調用 </van-button> <van-dialog use-slot async-close :show="show" show-cancel-button confirm-button-open-type="getUserInfo" @close="onClose" @getuserinfo="getUserInfo" > <van-field :value="username" label="用戶名" placeholder="請輸入用戶名" /> <van-field :value="password" type="password" label="密碼" border="false" placeholder="請輸入密碼" /> </van-dialog> </div> </div> </template> <script> import Dialog from ‘@/../static/vant/dialog/dialog‘ const message = ‘有贊是一家零售科技公司,致力於成為商家服務領域裏最被信任的引領者‘ export default { data: { show: false, username: ‘‘, password: ‘‘ }, methods:{ onClickAlert(){ Dialog.alert({ title: ‘標題‘, message }) }, showCustomDialog() { this.show=true }, getUserInfo(event) { console.log(event.mp.detail) }, onClose(event) { if (event.mp.detail === ‘confirm‘) { // 異步關閉彈窗 setTimeout(() => { this.show=false }, 1000); } else { this.show=false } } } } </script>
為了對比方便,我在上述頁面中既使用了組件調用方式又使用了函數調用方式。其中,組件調用方式大家都熟悉,不必贅述。
值得註意的是後者。
函數調用方式使用註意事項
有如下幾點:
1,必須放置一個dialog的聲明方式定義:
<van-dialog id="van-dialog" />
2,使用import命令中不能使用絕對路徑方式:
import Dialog from ‘@/../static/vant/dialog/dialog‘
這裏的@代表項目中的src目錄。
然後就可以使用更靈活的函數調用方式了:
Dialog.alert({
title: ‘標題‘,
message
})
Vant Weapp的dialog組件在mpvue小程序中使用註意事項