微信小程式開發學習筆記[2]
微信小程式開發學習筆記[2]
目錄
一、小程式頁面事件處理[下]
1.1、按鈕事件
當按鈕按下時觸發一個函式:
<!--secondpage.mxml-->
<view >這裡是第二頁</view>
<view>
<!--bindtap後面是要繫結的處理函式的名稱-->
<button size='mini'type='primary' bindtap="onTap">點我</button>
</view>
//secondpage.js
onTap:function(){
console.log("onTap is called");
}
2.2、setData函式
Page.prototype.setData()函式用於將資料從邏輯層傳送到檢視層(非同步),同時改變對應的this.data的值(同步)。
<!--secondpage.wxml-->
<view >這裡是第二頁</view>
<view>
<!--bindtap後面是要繫結的處理函式的名稱-->
<view>當前數字:{{localData}}</view>
<button size='mini'type='primary' bindtap="onTap">點我加一</button>
</view>
/**
* secondpage.js
* 頁面的初始資料
*/
data: {
localData:0
},
onTap: function () {
console.log("onTap is called");
this.setData({
localData:++this.data.localData
})
}
2.3、解決多頁面全域性資料不同步的問題
問題描述:一個全域性資料globalData,在多個頁面都可以訪問,當在某頁面把資料更改時(例如在secondpage更改)切回firstpage時,頁面顯示的還是原來的資料。
問題根源:當從firstpage切換到secondpage後,firstpage進行了隱藏顯示secondpage,此時firstpage在後面隱藏著,切回來時,頁面並沒有進行重新整理。
解決辦法:在firstpage.js的onShow()函式裡對資料進行重新整理,亦即重新賦值一次。
<!--firstpage.wxml-->
<view >這裡是第二頁</view>
<view>
<!--bindtap後面是要繫結的處理函式的名稱-->
<view>區域性當前數字:{{localData}}</view>
<button size='mini'type='primary' bindtap="onTap">點我區域性加一</button>
</view>
<view>
<!--bindtap後面是要繫結的處理函式的名稱-->
<view>全域性當前數字:{{globalData}}</view>
<button size='mini'type='primary' bindtap="onGlobalTap">點全域性我加一</button>
</view>
//pages/secondpage/secondpage.js
var app=getApp();
Page({
/**
* 頁面的初始資料
*/
data: {
localData:0,
globalData:app.globalData
},
onTap: function () {
console.log("onTap is called");
this.setData({
localData:++this.data.localData
})
},
onGlobalTap: function () {
console.log("onTap is called");
this.setData({
globalData: ++app.globalData
})
})
<!--firstpage/firstpage.wxml-->
<text>hello world</text>
<view>全域性變數:{{globalData}}</view>
<!--頁面調轉-->
<navigator open-type='redirect' url="../log/log">點我調轉</navigator>
<navigator open-type='navigate' url='../log/log'>點我跳轉2</navigator>
//firstpage.js
onShow: function () {
this.setData({
globalData: app.globalData
})
}
二、JS程式碼的模組化
2.1、什麼是js程式碼的模組化
將一些公共的程式碼抽離成為一個單獨的js 檔案,作為一個模組,此即js程式碼的模組化。模組只有通module.exports或者exports才能對外暴露介面。
2.2、例子演示
- 在專案目錄下新建utils資料夾
- 在utils資料夾下新建一個單獨的js檔案,此處我新建一個test.js
//utils/test.js
function sayHello(str){
console.log("hello "+ str);
}
//暴露給外部的介面名字:本檔案中介面的名字
module.exports={
say:sayHello
}
- 在firstpage中使用介面 需要先使用require匯入當前檔案
//匯入test.js
var test = require("../../utils/test.js");
Page({
/**
* 生命週期函式--監聽頁面載入
*/
onLoad: function (options) {
test.say("pig");
}
})
相關文章
- 微信小程式開發學習筆記[4]微信小程式筆記
- 微信小程式開發學習筆記[3]微信小程式筆記
- 微信小程式學習筆記微信小程式筆記
- 微信小程式入門學習筆記微信小程式筆記
- 微信小程式學習:雲開發微信小程式
- mpvue開發微信小程式踩坑筆記Vue微信小程式筆記
- 微信小程式--學習筆記(思維導圖)微信小程式筆記
- 微信小程式開發小記微信小程式
- 微信小程式開發2微信小程式
- 微信小程式開發筆記(2017.07.27)微信小程式筆記
- 小程式開發筆記筆記
- 原生微信小程式開發記錄微信小程式
- 微信小程式學習微信小程式
- 快速學會開發微信小程式微信小程式
- 關於uni-app微信小程式開發的部分筆記APP微信小程式筆記
- 怎麼認證微信小程式-微信小程式開發-視訊教程2微信小程式
- 微信小程式「學科排名」開發心得微信小程式
- 微信小程式Renard學習微信小程式
- 微信小程式開發教程-從零開始(2)微信小程式
- 微信小程式開發微信小程式
- 微信小程式開發記錄_03_開發指南_小程式程式碼組成微信小程式
- 小程式學習筆記(未完待續)筆記
- Python Web 開發學習 - 學習筆記(2)- 啟動PythonPythonWeb筆記
- 現學現賣微信小程式開發(一)微信小程式
- 現學現賣微信小程式開發(二)微信小程式
- 微信小程式學習網站微信小程式學習網站
- 【小程式】微信小程式開發實踐微信小程式
- 【小程式】微信小程式開發準備微信小程式
- 微信小程式開發記錄_01程式碼構成微信小程式
- 微信小程式開發教程微信小程式
- 微信開發與小程式
- 快速開發微信小程式微信小程式
- Jbuilder8開發J2ee學習筆記(2) (轉)UI筆記
- Rest API 開發 學習筆記RESTAPI筆記
- Android 開發學習筆記Android筆記
- 小程式學習筆記(6)-菜譜小程式的製作筆記
- 開發筆記:使用 mpvue 開發鬥圖小程式筆記Vue
- cocos2dx遊戲開發——微信打飛機學習筆記(九)——BulletLayer的搭建遊戲開發筆記