1. 程式人生 > 實用技巧 >開發微信小程式時,遇到的坑

開發微信小程式時,遇到的坑

最近在開發小程式,遇到一些坑,總結出來跟大家分享一下,我這裡使用的是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-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