我直接用 vscode(其它編輯器同理,預覽還是用的微信開發工具),語法高亮將 wxml 設置成 html, wxss 設置成 css
也可以安裝小程序相關插件
首先需要完整看完微信小程序文檔(框架,組件和 API),方便后面用到時查找。
view 組件對應 html 里的 div
text 對應 span
wxss 里選擇器只支持 element, #id, .className, ::after, ::before
項目目錄里新建 components ,按類似 pages 目錄結構,將每個組件的模板,樣式和 js 文件放在同一個文件夾
模板可以直接
樣式使用 @import 導入
js 使用 require 引入到頁面,然后使用下面的 mergePage 來加載到頁面對象中。
組件的加載
使用mergePage方法將所有組件方法及頁面事件注冊到頁面對象
組件的編寫方式
組件里使用可以 this.setData 來更新頁面數據,或者注冊 onLoad,onShow等頁面事件,mergePage 的最后一個參數的事件會最先調用。
mergePage 的源碼
es 6
一些函數參數也可以直接使用默認參數。
在給 template 傳 data 參數時,可以使用對象屬性簡寫,如
這樣 template 中可以使用變量為 obj 對象的所有 key,以及 id 和 name
模板字符串
小程序里可以直接方便的使用 es 6 模板字符串
let url = `${app.globalData.API_PREFIX}/cart/add`;
請參考:https://uedsky.com/2016-06/es6/ ,也可以參考下一篇es6語法簡介
wx.showToast 圖標只支持"success"、"loading",錯誤提示得自定義
如果 template 里面的變量沒值,請看 data 傳進來沒有。
開發工具(v0.10.102800)可以用下面方法添加接口請求域名,遺憾的是微信里不行。
所有頁面的 JS 會在啟動時立即執行,而不是打開頁面才執行,所以一些寫在全局的代碼應該盡量放到 onLoad 之后,下面是從調試 source 里看到加載的代碼: