新聞中心
- 使用組件注意事項
- button 組件
- label 組件
- 常見問題
- Q:為什么 label 組件不支持綁定 input 組件和 textarea 組件?
- switch 組件
- textarea組件
- 表單校驗
- 組合能力示例
使用組件注意事項
在使用小程序組件的時候,有一些開發(fā)實現(xiàn)的問題需要被注意。

為革吉等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及革吉網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都做網(wǎng)站、成都網(wǎng)站建設、革吉網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
button 組件
為了處理移動端的 1px 問題,默認類型的 button 組件在設置邊框樣式時使用了偽類。
場景:需要設置 button 邊框樣式覆蓋默認樣式。
解決方法:開發(fā)者可以通過偽類設置樣式來覆蓋默認的邊框樣式。
代碼示例
- SWAN
- CSS
按鈕 default
.btn {position: absolute;top: 50px;}.btn:after {border: 1px solid #f00;}
label 組件
label 組件使用 for 屬性找到對應的 ID(必須寫 for),當點擊時,就會觸發(fā)對應的控件。目前可以綁定的控件有:button、checkbox、radio、switch 。
場景:button/checkbox/radio/switch 組件較小的時候,可點擊區(qū)域變小,導致用戶體驗不好。
解決方法:使用 label 組件包裹,通過控制 label 組件的寬高,可以擴大控制熱區(qū)。
代碼示例
- SWAN
- CSS
智能小程序
.label {display: block;padding: .2rem;}
常見問題
Q:為什么 label 組件不支持綁定 input 組件和 textarea 組件?
A:這是因為為了提供更加豐富的功能和更接近于原生的體驗,input 和 textarea 是通過原生組件的形式實現(xiàn)的,關于原生組件具體可以參考原生組件說明,而 label 是非原生組件,因此暫時不支持綁定 input 組件和 textarea 組件。
switch 組件
switch 組件默認大小為 38px * 23px ,但不能通過設置 width 和 height 進行調整。
場景:開發(fā)者想調整 switch 組件的大小,直接設置 width 和 height 沒有效果。
解決方法:可以通過 CSS scale 縮放進行設置。
代碼示例
- CSS
swan-switch {/* 通過縮放調整大小 */transform: scale(.5);/* 圖標寬度并不會改變 *//* width: 1.1rem; */}
textarea組件
textarea 的 blur 事件會晚于頁面上的 tap 事件。
場景:有一個表單(textarea + button),獲取表單內容用的是 bindblur 事件。因為 textarea 的 blur 事件會晚于頁面上的 tap 事件,所以輸入內容后立即點擊 button 是不能獲得數(shù)據(jù)的。
解決方法:可以使用 form 的 bindsubmit 。
代碼示例
- SWAN
- JS
bindFormsubmit(e) {console.log(e.detail.value.textarea)}
表單校驗
合理使用校驗邏輯對表單的填寫更友好。
場景:填寫 form 表單時做校驗。
解決方法:先初始化表單校驗規(guī)則,由 bindblur 事件觸發(fā)自定義校驗方法,進行校驗。
代碼示例
- JSON
- SWAN
- JS
// 1. 在 data 里初始化表單項數(shù)據(jù),并定義校驗的正則表達式,例如校驗電話:// (value: 對應的輸入值; rulse:校驗規(guī)則; errorInfo: 校驗失敗的提示信息;)model: {phone: {value: '',rulse: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,errorInfo: {errFlag: false,errContent: '請輸入有效的手機號'}}}
bindBlur(e) {let value = e.detail.value;let id = e.currentTarget.dataset.id;let rulse = this.data.model[id].rulse;this.validate(rulse, value, id);},// 3. 寫一個自定義校驗方法,驗證正則validate(rulse, value, id) {let tes = new RegExp(rulse)// 校驗通過// ...// 校驗未通過,顯示錯誤信息// ...}
組合能力示例
智能小程序,還提供了許多組合能力示例,例如查詢類服務表單模板、辦理類服務(單流程)表單模板、辦理類服務(多流程)表單模板。模板內包含的組件豐富,覆蓋大多數(shù)查詢類服務項場景,并且有完整的校驗規(guī)則,示例和源代碼請參考對應的組合能力示例模板。
文章名稱:創(chuàng)新互聯(lián)百度小程序教程:使用組件注意事項
當前鏈接:http://m.5511xx.com/article/dpdsjdc.html


咨詢
建站咨詢
