1. 程式人生 > >小程式開發注意問題

小程式開發注意問題

#小程式-開發注意問題
####新手開發遇到的一些需要注意的點,加上百度一些,記錄一下


1.強制要求請求全部為https!
2. 小程式生命週期的函式內部物件要就改成var that=this;防止被替換。
3. view不識別\n但是text可以。
4. 沒有dom!沒有dom!沒有dom!,繫結資料,控制顯示和隱藏全部用data來修改,就是this.setData({}),不過一般我們都寫成that.
5. 跳轉現在(2018)小程式支援十層
6. 微信小程式中原生元件層級最高,比如map,canvas,swiper,只能使用cover-view,cover-image,其中cover-view很垃圾很多樣式都不支援,而且支援點選事件bindtap,還有各種bug,建議cover-view簡單使用就可以了,千萬別想著在原生元件上使用炫酷的效果說多了都是淚。(問題引用:當使用display:none;做隱藏的時候,其內容文字會出現在螢幕右上角,建議使用 wx:if="false"或position:absolute;left:-1000rpx;這種方式做隱藏。2、border不支援單邊。3、不支援padding的使用,在安卓端會出現padding消失的問題。)
7. 動畫問題(看帖子發現的之前不知道為什麼):在小程式中當有兩個元素同時發生變化時,會出現衝突,導致其中一個變化,而另一個不做變化,所以要使用setTimeout方法避免元素同時出現變化。
8. js執行順序(看帖子發現的之前不知道為什麼):在開發者工具中執行先執行aap.js然後執行其他js檔案,但在手機上app.js和其他js是同時執行的;
9. 很多原生元件都有定高,只能使用微信提供的rpx來修改!
10. 小程式是單向繫結和vue不同,修改資料只能從setData來修改
11. 本地資源無法通過 css 獲取,只能通過網路或者使用image標籤
12. cover-view放棄padding, 用min-width + text-align + height + line-height
13. 公共模組 util.js
公共模組方法需要通過 module.exports 對外暴露介面,使用的時候需要利用 require(path),將檔案引入。如:

function sayHello(name) {//公共方法util類
  console.log(`Hello ${name} !`)
}
module.exports.sayHello = sayHello//用module.exports 對外暴露介面

//先引入檔案,是新建的一個 utils 包,公共方法在 util.js 裡面


var util = require('../../utils/util.js')
Page({//呼叫類
  onLoad: function () {//  使用時,用 util 引用名呼叫,如:util.sayHello()
    util.sayHello('我是傳的值');
  }
})

13.解決小程式彈出層滾動穿透的問題:(原部落格地址
一:當彈出層裡面無滾動的時候:

可以在遮罩的view標籤上定義一個防止事件冒泡的方法:

catchtouchmove="preventD";
 
 
 preventD() {
    return
  }

二:當彈出層有滾動的時候

.noscroll {
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: fixed;
  z-index: 0;
}

14.invoke event報錯
這個是新手常常遇到的問題:
1.可能地址不正確,建議使用絕對路徑比如:/pages/index/index
2.有可能錯誤的使用了跳轉:

//跳轉到新的頁面,新的頁面帶有返回按鈕,不能跳轉到tabBar頁面,否則會報invoke event之類的錯誤 
wx.navigateTo({
  url:"/pages/index/index" 
})
//關閉當前頁,跳轉到新的頁面,但是不能太偶轉到tabBar頁面,否則會報invoke event錯誤
wx.redirectTo({
   url:"/pages/index/index" 
})
//跳轉到tabBar頁面,沒有返回按鈕
wx.switchTab({
  url:"/pages/index/index" 
})