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