開發微信小程式時,遇到的坑
最近在開發小程式,遇到一些坑,總結出來跟大家分享一下,我這裡使用的是mpvue框架,mpvue也有不少坑~
1.scroll-view的屬性設定,scroll-y設定,不管我們設定scroll-y=true還是false,其實都會滾動的,要想設定scroll-y為false,我們需要用資料繫結的形式來設定才會起效:scroll-y=false
2.有時候明明設定 一個變數,當它為false的時候才展示某個元素,比如 isHide?hide:show,有時候會發現,在頁面中,還是會先渲染出來一下,然後才被隱藏了,原因是,最開始的時候,data資料還沒有初始化完成,這個時候,isHide是undefined,undefined變成boolean值,就是false,所以最開始還是show了,為了解決這種情況,我們可以使用全等符號。 isHide=== true ?hide:show
3.顯示image的時候,如果我們設定了mode=widthFix,有時候在渲染的時候會看到圖片有一個拉伸過程,然後才變成我們期望的大小,解決這個問題,可以給image新增height:auto;或者使用background-image來展示,需要注意的是background-image不支援本地路徑,可以支援本地base64或者伺服器返回來的圖片
4.在父元件跳轉到子元件的時候,使用navigateTo方法,攜帶引數,如果引數裡面帶特殊字元,會被截斷,導致我們在子元件獲取到的引數不正確。解決辦法就是,通過encodeURIConponent,對引數進行編碼,然後在子元件再進行解碼,其實跟我們url傳遞引數是一樣的,都需要注意這一點。
5.cover-view元件IOS可以支援滾動了,不過需要7.0以上版本的微信。
6.單頁面目前也是可以支援自定義導航欄,同樣需要7.0以上版本的微信。
7.mpvue的坑,雙向資料繫結的時候,有些安卓機會卡頓。可以通過防抖賦值或者v-model.lazy,不使用雙向繫結。
8.mpvue渲染速度比較慢,有時候會出現資料改變了,但是頁面不渲染的情況。
9.<cover-view></cover-view>元件預設不換行,加上這一行程式碼,可以讓它換行white-space:pre-wrap;
10.第三方元件樣式修改:
以iview webapp為例,不能直接通過其class的類名直接修改元件樣式,可通過i-class
全文完,大家可以說說自己開發過程中遇到了哪些坑,以及解決辦法^_^
<i-page i-class="ipage" current="{{ page }}" total="{{ total }}" bind:change="handleChange"> <view slot="prev"> <i-icon type="return"></i-icon> 上一頁 </view> <view slot="next"> 下一頁 <i-icon type="enter"></i-icon> </view> </i-page> <style> .ipage{ height: 64px!important; } </style>
11. 使用wepy時,非同步更新資料,手動重新整理dom的時候需要使用 this.$apply()
12.小程式語音功能,通過同聲傳譯外掛
https://developers.weixin.qq.com/community/develop/doc/0004aa70d609e099c1d671b2a56009
13.主動獲取位置授權:
https://developers.weixin.qq.com/community/develop/doc/000cea2305cc5047af5733de751008