小程序中每一個(gè)頁面對(duì)應(yīng)一個(gè)Page()方法,我們需要把變量和組件的各種事件都寫在一個(gè)對(duì)象里,然后把對(duì)象作為這個(gè)參數(shù)傳遞給Page方法 如下定義 const object = { data: { nickName:'酷走天涯' }, // 頁面加載完成調(diào)用這個(gè)方法 onLoad: function (options) { }, bindTopupEvent:function(event){ }, // 所有的綁定組件事件都要寫在這個(gè)地方,可能特別多 .... } 可能你要定義好多組件模塊,比如城市列表 訂單 支付 等 組件 我們需要重用的組件 我們當(dāng)然希望把組件的綁定事件抽離出來,如下 order.wxml order.js order.wxss 先看看如何在頁面中分別引用這幾個(gè)文件,假設(shè)有一個(gè)主頁index index.wxss 引入 order.wxss @import "../../templates/order.wxss"; index.wxml 引入 oder.wxml <import src='../../templates/order.wxss'/> index.js 引入 order.js var order = require('../../templates/order.js') 我們想要想下面這樣使用,將擴(kuò)展組件的綁定事件引入進(jìn)來 Page(extend(order,object)) 接下來我們就擴(kuò)展一個(gè)extend方法 創(chuàng)建一個(gè)extend.js 文件 專門寫這個(gè)方法,我們?cè)谄渌撁鎗s文件中也可以使用 var extend = function(a) { ([].slice.call(arguments, 1) || []).forEach(function(b) { if (b) for (var c in b) a[c] = b[c] }) return a }; module.exports=extend; 注意一下
有人可能會(huì)有下面的因?yàn)樵趏rder.js 文件 訪問 index.js 文件中變量? order.js 中有如下方法 function pay(){ // 獲取用戶的姓名 const nickName = this.data.nickName } order.js 文件和 index.js 沒有任何關(guān)系 為什么能調(diào)用index.js 文件的object 對(duì)象的data變量?
注意一點(diǎn)非常重要,如果調(diào)用的方法 不是包含在Object中(Page(Object)),必須在order.js引入進(jìn)來 比如 var request = require('../../config/method') 你需要在order.js文件中調(diào)用request.pay() 方法 |
工作日 8:30-12:00 14:30-18:00
周六及部分節(jié)假日提供值班服務(wù)