以一個天氣小程序展現一下小程序開發的總體流程,使用原生開發,未使用比較流行的(如wepy、mpvue)框架。javascript
閱讀小程序官方文檔,熟悉開發者工具。css
幾個tips:html
項目結構前端
生命週期vue
onLaunch() {
console.log('onLaunch監聽小程序初始化');
}
onShow() {
console.log('onShow監聽小程序顯示');
}
onHide() {
console.log('onLaunch監聽小程序隱藏');
}
複製代碼
onLoad(options) {
console.log('onLoad監聽頁面加載');
}
onReady() {
console.log('onReady監聽頁面初次渲染完成');
}
onShow() {
console.log('onShow監聽頁面顯示');
}
onHide() {
console.log('onHide監聽頁面隱藏');
}
onUnload() {
console.log('onUnload監聽頁面卸載');
}複製代碼
通常狀況下,小程序的生命週期函數執行先於頁面的生命週期函數。java
自定義組件git
組件文件相似頁面結構,也有四個文件。es6
{
"component": true
}
複製代碼
<view>
<view class="inner">{{innerText}}</view>
<slot></slot></view>複製代碼
.inner {
color: red;
}複製代碼
Component({
properties: {
// 這裏定義了innerText屬性,屬性值能夠在組件使用時指定
innerText: {
type: String,
value: 'default value',
}
},
data: {
// 這裏是一些組件內部數據
someData: {}
},
methods: {
// 這裏是一個自定義方法
customMethod() {}
}
})複製代碼
幾個tips:
數據庫
全局變量json
小程序提供了globalData來存儲全局通用數據。
globalData: { userInfo: null, city: "" }複製代碼
const app = getApp();
app.globalData.userName = "Tom"複製代碼
狀態管理
小程序經過頁面或組件各自的 setData 再加上父子、兄弟間等等組件間的通信會讓代碼很亂,若是再加上跨頁面之間的組件通信,會讓程序很是難維護和調試。
小程序的工程化已經作得十分完善,目前最大的痛點就在於狀態管理和跨頁通信了。
介紹下騰訊開源的一款狀態管理解決方案---Westore。
以天氣小程序爲例。
城市爲首頁和搜索頁都控制的數據。
當小程序開發完成,真機調試結束後,即可以上上傳咱們的代碼至微信服務器。固然開發者工具也提供了git來管理咱們的代碼。
代碼上傳完畢後,可登陸微信公衆平臺小程序模塊,管理 -> 版本管理頁面,提交審覈咱們的代碼版本,待審覈完畢後,即可發佈咱們的小程序,也可延遲提交審覈咱們的代碼,先將代碼設爲體驗版本,再經過 管理 -> 成員管理 設置咱們的微信好友進行小規模體驗測試。
開發者無需搭建服務器,就可根據提供的api進行核心業務的後端開發工做。
目前提供三大基礎能力支持:
雲函數:能夠認爲就是後端函數,微信私有協議自然鑑權,開發者只需編寫自身業務邏輯代碼
數據庫:一個既可在小程序前端操做,也能在雲函數中讀寫的 JSON 數據庫
文件存儲:在小程序前端直接上傳/下載雲端文件,在雲開發控制檯可視化管理
優勢: 雲開發小程序,經過提供客戶端 API 的方式,封裝了不少服務處理和管理維護的過程,使得服務架構對小程序開發者的門檻大大下降。開發者只須要使用 Javascript 一種語言,結合提供的 API,能夠完成小程序的開發、服務的業務邏輯編寫、數據管理、用戶管理,也省去了不少系統安全、服務搭建、性能維護等工做。