微信小程式開發學習筆記[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");
}
})
相關文章
- 微信小程式開發學習筆記[3]微信小程式筆記
- 微信小程式開發學習筆記[4]微信小程式筆記
- 微信小程式學習筆記微信小程式筆記
- 微信小程式入門學習筆記微信小程式筆記
- 微信小程式學習:雲開發微信小程式
- 微信小程式開發2微信小程式
- mpvue開發微信小程式踩坑筆記Vue微信小程式筆記
- 微信小程式--學習筆記(思維導圖)微信小程式筆記
- 微信小程式開發小記微信小程式
- 微信小程式學習微信小程式
- 原生微信小程式開發記錄微信小程式
- 快速學會開發微信小程式微信小程式
- 微信小程式Renard學習微信小程式
- 微信小程式開發微信小程式
- 關於uni-app微信小程式開發的部分筆記APP微信小程式筆記
- 微信小程式開發教程微信小程式
- 微信小遊戲開發小記遊戲開發
- 微信小程式開發記錄_03_開發指南_小程式程式碼組成微信小程式
- 【小程式】微信小程式開發準備微信小程式
- 微信小遊戲開發(2)遊戲開發
- 微信小程式開發記錄_01程式碼構成微信小程式
- cocos2dx遊戲開發——微信打飛機學習筆記(九)——BulletLayer的搭建遊戲開發筆記
- 小程式開發筆記筆記
- 使用mpvue開發微信小程式Vue微信小程式
- 微信小程式開發--『狗蛋TV』微信小程式
- 開發微信小程式的作用微信小程式
- 微信小程式雲開發6微信小程式
- 微信小程式開發神器-Grace微信小程式
- 微信小程式開發精講微信小程式
- 微信小程式藍芽開發微信小程式藍芽
- 微信小程式開發總結微信小程式
- 微信小程式開發之大神之路最全微信小程式開發教程(視訊+精品文章)微信小程式
- 【微信小程式開發】梔子手作花花微信小程式商城開發最佳實踐微信小程式
- 微信小程式開發系列七:微信小程式的頁面跳轉微信小程式
- 微信小程式開發系列教程三:微信小程式的除錯方法微信小程式除錯
- 微信小程式開發系列二:微信小程式的檢視設計微信小程式
- 微信小程式開發風口下,微信小程式該如何運營?微信小程式
- 微信小程式--聊天室小程式(雲開發)微信小程式