小程式界面設定如下
父級頁面:A界面
子級頁面:B界面
異級頁面:C界面
一.本頁面取值(A界面→A界面)
a.例如:input輸入文字擷取到value(鍵盤輸入時觸發)
wxml:
<input type=\'text\' name="userName" maxlength="11" bindinput="userPhoneInput" ></input>
js:
data: {
userPhone: \'\',
},
//手機号輸入框事件鍵盤輸入時觸發(文字提醒)
userPhoneInput: function (e) {
this.setData({
userPhone: e.detail.value
})
},
//接口取值格式
onShow: function () {
.....
data:{
UserPhoneNum:that.data.userPhone,
},
.....
},
b.例如:input不輸入文字擷取到全部的value(鍵盤不輸入時觸發)
wxml:
<form bindsubmit="formSubmit">
<input type=\'text\' value=\'{{putdata.name}}\' name="companyname" placeholder=\'請輸入你的姓名/公司名稱\'></input>
<input type=\'text\' value=\'{{putdata.bankName}}\' name="openbank" placeholder=\'請輸入你的開戶行全稱\'></input>
<button formType="submit">完成</button>
</form>
注:form表單與button綁定擷取input的内容
js:
//按鈕點選事件
formSubmit: function (e) {
var companyname = e.detail.value.companyname;
var openbank = e.detail.value.openbank;
//根據name取input的value
wx.request({
url: aaaaaa,
data: {
name: companyname,
bankName: openbank,
},
header: {
\'content-type\': \'application/json\',
},
success: function (res) {
},
fail: function () {
}
})
}
二.異頁面傳值取值(A界面→B界面,A界面→C界面)
a.url傳值
用 navigator标簽或 wx.navigator傳值,A界面向B界面傳值;(不懂的自行安利小程式api群組件)
wxml:
// navigator标簽傳值
<navigator url="/page/index/index?id=1432&name=qima&password=hj1234" >傳值</navigator>
//wx.navigator傳值
wx.navigateTo({
url: \'/page/index/index?id=\' + id +\'&username=\'+ username+\'&password=\'+ password
})
下一個頁面取值方法:
js:
data: {
id : "" ,
name : "" ,
password : "",
},
onLoad: function (options) {
var id = options.id;
var name = options.name;
var password = options.password;
this.setData({
id:id,
name:name,
password:password,
})
},
一般小程式能不用接口解決的就不要用到接口呈現資料,可以用URL傳值,到下一個頁面取值,然後呈現到頁面即可;
b.資料存儲
附加:小程式list資料點選擷取對應的id,我們可以通過設定item的id來辨別或者通過設定鍵值data-xxxx的方式辨別,
比如:
<view class=\'puttype-list\' wx:for="{{tabitem}}" wx:key="*this" bindtap="choice" data-id="{{item.id}}">
<view class=\'puttype-list-con\'>
<text>{{item.text}}</text>
<view class=\'hint\'></view>
</view>
</view>
然後,我們通過,如果是id那麼e.currentTarget.id 即可擷取該元素id。如果是data-id那麼e.currentTarget.dataset.id 即可擷取你自己設定的data-id裡面值。
//釋出類型選擇
choice: function (e) {
var id = e.currentTarget.dataset.id;
console.log(id)
wx.setStorageSync(\'articleId\', id);
wx.navigateTo({
url: \'../put/put\',
});
},
我們會用到小程式的api,通過調用微信提供的方法:wx.setStorage、wx.setStorageSync、wx.getStorage、wx.getStorageSync、wx.clearStorage、wx.clearStorageSync、實作對資料本地緩存、擷取、清除。
js緩存:
我們擷取接口傳回的資料,id,code之類的,我們做全局儲存,命名一個key和内容value;
wx.request({
url: aaaaa,
data: {
UserPhoneNum: \'86//\' + that.data.userPhone,
Password: that.data.passWd,
IP: that.data.IP,
},
header: {
\'content-type\': \'application/json\',
},
success: function (res) {
console.log(res.data),
//存儲格式 wx.setStorageSync(\'key命名\', value内容);
wx.setStorageSync(\'salemanId\', res.data.salemanId);
wx.setStorageSync(\'salemanLevel\', res.data.salemanLevel);
if (res.data.state == 200){
}else{
}
},
})
js擷取:
根據key擷取到資料,緩存到本地或上傳到接口;
//根據key擷取到緩存的值
var salemanId= wx.getStorageSync("salemanId");
js清除:
從本地緩存中同步移除指定 key。這裡具體使用同步或是異步需要根據你存儲時的方法,或是同步清理本地資料緩存;
//清除資料
wx.removeStorageSync("salemanId")
檢視自己緩存資料地點:(如圖)
c.全局App對象
在我們的app.js檔案裡面,我們需要寫好我們需要全局使用的資料;
//使用者學校資料
globalData: {
school:null,
}
我們需要給它指派,指派代碼如下:
var self = this
......
self.globalData.school = res.data.schoolID
在我們需要取值的地方引用全局的app.js,然後取值:
var app = getApp();
onLoad: function () {
var that = this;
//調用應用執行個體的方法擷取全局資料
app.getUserSchool(function (school) {
//更新資料
})
},
//取值
......
school: app.globalData.school,
......
三.總結
小程式了解到這些傳值取值過程,接通接口,呈現資料就快多了,還有哪些可以傳值取值的方法,歡迎大家留言哦,交流才能讓人進步,有什麼錯誤的地方也歡迎大家指正,我将進行更改,覺得部落客寫的還可以的,歡迎點個關注,以後有空常來我的部落格逛逛,雖然可能寫的東西不是很進階,但是對于初級的人來說,還是能幫助到很多東西的,我的博文能幫助到大家我就很開心了,謝謝您百忙之中的觀看,一起加油進步,哇哈哈哈