微信小程序頁面之間的傳參方法有四種
1.頁面url傳參
2.data-屬性傳參
3.緩存?zhèn)鲄?/strong>
4.全局變量傳參
1.頁面url傳參
navigator標(biāo)簽里面設(shè)置url后面用?加上key=value鍵值對模式傳參,可以綁定動態(tài)數(shù)據(jù)
<!-- pageA傳遞參數(shù) -->
<navigator url="../article/article?articleID=3">頁面url傳參</navigator>
//pageB接受參數(shù)
onLoad: function (options) {
this.setData({
articleID:options.articleID //articleID問pageB頁面變量
})
},
2.data-屬性傳參
通過data-屬性設(shè)置產(chǎn)生,在通過url傳遞參數(shù),其本質(zhì)還是通過url傳參
<!-- pageA頁面設(shè)置 -->
<view wx:for='{{articles}}' wx:key='index'>
<text bindtap="goArticle" data-item='{{item}}'>{{item.title}}</text>
</view>
//pageA傳遞參數(shù)
goArticle:function(event){
var item=event.currentTarget.dataset.item;
wx.navigateTo({
url: "../article/article?id="+item.id+"&title="+item.title,
})
},
//pageB接受參數(shù)
onLoad: function (options) {
this.setData({
articleID:options.id,
atricleTitle:options.title
})
},
備注:url傳參和data-屬性傳參不能同時使用,否則后設(shè)置的生效;
3,緩存?zhèn)鲄?br> 小程序緩存分為異步和同步,一般使用同步;方法類似于h5的本地存儲;
//緩存?zhèn)鲄?onLoad:function(){
wx.setStorageSync("title", this.data.title)
}
onLoad: function (options) {
this.setData({
motto: wx.getStorageSync("title"),
})
4.全局變量
//1.在app.js中設(shè)globalData:{key:value,...}
globalData: {
userInfo: null
}
//2.頁面定義var app=getApp()
//3.頁面調(diào)用變量,app.globalData.key
const app = getApp()
getUserInfo: function() {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
}