從6月份開始到如今,寫小程序將近4個月了
開發時給本身埋了很多坑~
給你們分享下個人填坑經驗~~html
1.小程序的組件修改不能觸發頁面刷新?
須要在父級文件上保存下才會觸發
(使用wepy開發)vue
2.接口請求出現的問題?
記得勾選調試開發工具上 不校驗合法域名ios
3.navigateTo跳轉頁面不生效?
頁面棧最多支持10層,超過10層沒法後退(10層以後有其餘方法解決~)canvas
4.onload只會在頁面加載時候執行,好比用navigateBack回到以前的頁面的時候,以前那個頁面不會再執行onload,
因此咱們要觸發某些函數的時候,咱們能夠放在onshow裏面,即便是navigateBack回來也會執行小程序
5.子組件的onload會在父組件onload以前執行,有一個頁面加載完成3s後展現飄窗的需求,飄窗會當即被加載
能夠在父子組件用EventHandle(相似vue的eventBus)通訊下,以肯定子組件加載時機~api
6.操做用戶頭像(好比點擊跳轉)
open-data相似自定義組件,上面沒法綁定事件,簡單實現能夠用navigator包裹open-data,不用寫js代碼便可實現點擊跳轉頁面。navigator至關於html的a元素,默認爲inline,可修改display樣式爲block
navigator組件屬性 openType 可選值 'navigate'、'redirect'、'switchTab',對應於wx.navigateTo、wx.redirectTo、wx.switchTab的功能緩存
7.同一個頁面想要2個分享?
須要在Page中添加onShareAppMessage方法,不然點右上角菜單不會出現轉發選項
除了右上角菜單外,可使用button組件的open-type="share"
button組件和右上角的點點點都是調用onShareAppMessage方法
經過參數中的from字段區分事件來源是菜單menu仍是按鈕button(某需求要求兩個分享不一樣)
經過onShareAppMessage方法返回的對象來定製轉發界面顯示的內容微信
8.分享成功後的打點消失了?
是的,微信取消支持這個功能了。。。
在原來的分享接口中,用戶發起分享動做以後,能夠經過 success 、fail、complete等回調來判斷用戶是否完成了最後的分享動做。老代碼也是分享成功的經過分享success回調函數內打log的記錄。因爲官方後來取消了這個功能,因此分享的打點要放到外面來。微信開發
9.canvas相關
要進行繪製,則canvas組件必須真實地被寫在頁面上,並且其wx:if不能爲false。
canvas是原生組件,層級是最高的,因此頁面中z-index設置不生效。
因而把canvas放置在屏幕以外,如設置position:fixed;left:750rpx;異步
canvas的api,在頁面中,api的參數this不是必填的,在組件中就是必填的,頁面中可不填。
在繪製canvas時,因爲draw是異步操做,須要把canvasToTempFilePath寫到draw成功的回調裏
(起初是繪製內容少很快,用同步寫也不會出問題)
繪製出來的圖片若是以爲有點糊,請在canvas中等比例放大繪製尺寸~
可是也不能太大,否則在安卓上會有bug(限制範圍貌似在2000px)。
10.全屏蒙版彈窗遮不住tabBar?
tabBar的層級仍是很高的,當出現全屏蒙版彈窗時,是沒法蓋住tabBar的,
能夠調用微信的hidetabbar,不過須要注意兼容低版本
11.在placeholder-class類設置的顏色並無變化。
placeholder的顏色只能經過placeholder-style的方式設置
placeholder-style="color:#ccc"
1.只用開發者工具測試能行嗎?
有些功能是版本限制的,開發者工具的基礎庫版本能夠調整,可是沒法設置微信版本,仍是須要真機。
2.掃描新生成的二維碼會跳轉到線上的連接?
之前是測試的時候須要用微信開發者工具來測試在編譯模式,把二維碼的具體信息添加進去
在最新的開發工具中,有一項 二維碼編譯 模式,解決了跳轉線上小程序連接的問題
3.開發者工具上看效果沒問題,可是在真機上測試不行?
通常說來都是真機緩存的影響,微信開發者工具是能夠一鍵清理所有緩存
安卓和ios的上通常都是刪除這個小程序(注意 不是刪除使用記錄)
再有就是,刪除完畢後能夠進入小程序的設置選項查看權限的開關來肯定是否真的徹底清除。
4.清除緩存後還有問題?
這時候就須要使用vConsole了
開發版和體驗版能夠點擊真機小程序頁面右上角的...按鈕打開的菜單項「打開調試」來開啓 vConsole
正式版沒有「打開調試」的菜單項,能夠先經過開發版和體驗版來開啓 vConsole,而後再打開正式版。
或者預埋一個隱藏操做,好比連續點擊某個 Button 屢次,而後調用 API 接口 wx.setEnableDebug 來打開。
5.如何遠程調試真機?
vConsole通常用來看有無報錯,若是是簡單的問題,我們直接修改代碼就能夠改好了了
複雜的狀況還須要調試,手機畢竟看日誌不方便,也不能斷點調試、修改樣式
此時須要藉助遠程調試來快速定位複雜問題~
使用開發者工具的遠程調試窗口只要用手機掃一掃就能夠連通手機和模擬器之間的數據連接,調試的上下文會自動切換到 VM Context 1
上傳代碼的話,須要勾選 樣式自動補全一次沒經過,請再提交一次吧:(