1. 程式人生 > >小程式中遇到的那些坑

小程式中遇到的那些坑

坑1、沒有DOM

無法使用熟悉的$查詢、document.getElementById等等這些操作,小程式取而代之的是資料繫結技術,所謂的資料驅動,就是資料改變之後,檢視展示跟著自己會變。DOM沒了,所以只好頻繁的使用this.setData({})來操作頁面屬性。

tip:在方法最初最好新增 var than = this; 使用than代替this,否則方法內部函式的this會被替代。

坑2、圖片問題

除tapbar外,背景圖無法使用本地資源,替代方式是使用base64資源或者外網載入。每個image標籤底部有一條透明間隔,非padding,非margin。在圖片前面做遮罩層時可能會被坑。

坑3、跳轉

小程式頁面跳轉開啟最多五層,超出五層不會跳轉了,所以大家要注意,可以在跳轉的時候關閉前一個頁面。

坑4、wxml標籤

wxml的標籤跟html裡面的一些標籤是一樣的,就說view標籤就相當於div標籤,text標籤相當於span標籤吧,然就是表單元素,這裡就要注意了,在微信小程式中,表單元素都是原生元件,微信小程式中原生元件層級最高,所以在用input,canvas,map這些元件就要注意了。其中在樣式上不支援overflow-x/overflow-y,只可使用overflow。

在input標籤中會出現placeholder文字位置不固定,可使用使用placeholder-class屬性修改placeholder樣式。input標籤無法設定 font-family; 。對input直接float:left也是不行的,要在input外面套view,然後對其進行浮動。

scroll-view元件注意事項:1、不要在scroll-view 中使用 textarea、map、canvas、video 元件2、scroll-into-view 的優先順序高於 scroll-top。3、在滾動 scroll-view 時會阻止頁面回彈,所以在 scroll-view 中滾動,是無法觸發 onPullDownRefresh。

在map元件中只能使用cover-view標籤,在cover-view標籤下只能使用cover-view以及cover-image標籤,這兩種標籤在樣式上的問題非常多,不建議使用,問題1、當使用display:none;做隱藏的時候,其內容文字會出現在螢幕右上角,建議使用 wx:if="false"或position:absolute;left:-1000rpx;這種方式做隱藏。2、border不支援單邊。3、不支援padding的使用,在安卓端會出現padding消失的問題。

坑5、動畫問題

在小程式中當有兩個元素同時發生變化時,會出現衝突,導致其中一個變化,而另一個不做變化,所以要使用setTimeout方法避免元素同時出現變化。

坑6、js問題

js執行順序,在開發者工具中執行先執行aap.js然後執行其他js檔案,但在手機上app.js和其他js是同時執行的,就比如說你在app.js裡面向本地儲存一個變數,然後再去index.js裡面取這個變數,在開發者工具中是可以取到的,但在手機上它會取不到的。