微信小程式基礎
阿新 • • 發佈:2019-01-29
目錄結構
json檔案 各個頁面的配置(此處的配置會覆蓋app.json下相同的配置)
小程式的註冊、各個頁面的註冊
app.js 裡必須要一個有App()函式來註冊當前小程式,App()函式接受一個 object 引數,其指定小程式的生命週期函式等。
App({ /** * 當小程式初始化完成時,會觸發 onLaunch(全域性只觸發一次) */ onLaunch: function () {},
/** * 當小程式啟動,或從後臺進入前臺顯示,會觸發 onShow */ onShow: function
},
/** * 當小程式從前臺進入後臺,會觸發 onHide */ onHide: function () {
},
/** * 當小程式發生指令碼錯誤,或者 api 呼叫失敗時,會觸發 onError 並帶上錯誤資訊 */ onError: function (msg) { }})
各個頁面的.js檔案必須有Page() 函式用來註冊當前頁面。Page() 函式接受一個 object 引數,其指定頁面的初始資料、生命週期函式、事件處理函式等。
Page({
/**
* 頁面的初始資料
*/
data: {
},
/**
* 生命週期函式--監聽頁面載入
*/
onLoad: function (options) {
//動態繫結資料
this.setData({postData:"aaa"});
},
/**
* 生命週期函式--監聽頁面初次渲染完成
*/
onReady: function () {
},
/**
* 生命週期函式--監聽頁面顯示
*/
onShow: function () {
},
/**
* 生命週期函式--監聽頁面隱藏
*/
onHide: function () {
},
/**
* 生命週期函式--監聽頁面解除安裝
*/
onUnload: function () {
},
/**
* 頁面相關事件處理函式--監聽使用者下拉動作
*/
onPullDownRefresh: function () {
},
/**
* 頁面上拉觸底事件的處理函式
*/
onReachBottom: function () {
},
/**
* 使用者點選右上角分享
*/
onShareAppMessage: function () {
}
})
模組化
wxml、js、wxss三類都可以模組化。
1、js類
可以將一些公共的程式碼抽離為一個單獨的js檔案,作為一個模組。模組只有通過 module.exports
或者exports才能對外暴露介面。
模組檔案common.js:
module.exports = { fruits: fruits, sayNo:sayNo}
模組引用:
Tip:require目前僅支援相對路徑,不支援絕對路徑
二、wxml類wxml程式碼裡也可以根據介面上不同的部分去分塊。從主wxml檔案裡分出來的檔案,可以寫成一個模板template。1、template和引用template都在同一頁面內template:<templatename="tpl"><view>it is tpl!</view><view>id:{{id}}</view><view>name:{{username}}</view></template>引用template:
<templateis="tpl"data="{{...userinfo}}"></template>JS:data:{userinfo:{id:110,username:"Nike"}}2、引用檔案和模板檔案分別是兩個檔案2.1 import引入模板檔案:tpl.wxml<templatename="tpl1"><view>這是第二個模板</view><view>id:{{id}}</view><view>name:{{username}}</view></template>引入檔案:<importsrc="tpl.wxml"/><templateis="tpl1"data="{{...userinfo}}"></template>js檔案都用的同一資料2.2 include引入模板檔案:tpl2.wxml<templatename="tpl1"><view>這是第二個模板</view><view>id:{{id}}</view><view>name:{{username}}</view></template>引入:<includesrc="tpl2.wxml"/>js檔案都用的同一資料2.3 include和import的區別簡單理解就是:import是把相應的一個檔案裡定義的模板引入進來,讓主wxml檔案可以用這個模板。而include是直接把相關檔案的原始碼、內容,原封不動的匯入進來三、wxss類wxss的模組化和sass、less差不多了@import "tpl.wxss";
小程式快取
// 快取,使用者不主動清除,是永遠存在的 wx.setStorageSync('key', {'name':'abc'});//同步的 wx.getStorageSync('key'); wx.removeStorageSync('key'); wx.clearStorageSync();//清除所有快取wx.setStorage({ key: 'key2', data: '333', });//非同步的
小程式通知功能
小程式自帶API: