1. 程式人生 > >微信小程式基礎

微信小程式基礎

目錄結構

json檔案 各個頁面的配置(此處的配置會覆蓋app.json下相同的配置) 

頁面的顯示需要在app.json的pages節點以檔案目錄+檔名註冊,第一個註冊的頁面為啟動頁 
這裡寫圖片描述

小程式的註冊、各個頁面的註冊

app.js 裡必須要一個有App()函式來註冊當前小程式,App()函式接受一個 object 引數,其指定小程式的生命週期函式等。

App({ /** * 當小程式初始化完成時,會觸發 onLaunch(全域性只觸發一次) */ onLaunch: function () {
},
/** * 當小程式啟動,或從後臺進入前臺顯示,會觸發 onShow */ onShow: function
(options) {
},
/** * 當小程式從前臺進入後臺,會觸發 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:

function sayNo() { console.log("no bug");}var fruits = ['taozi','pingguo'];
module.exports = { fruits: fruits, sayNo:sayNo}

模組引用:

Tip:require目前僅支援相對路徑,不支援絕對路徑

var postsData = require('../../data/common.js')Page({ data: { taozi: postsData.fruits[0] }, clickTap: function (e) { postsData.sayNo(); }})
二、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: