第一种:全局传值
// 步骤一:在全局app.js文件中定义数据 App({ globalData: { userInfo: null, userName: '全局变量传值', } }) // 步骤二:获取应用实例,不然无法调用全局变量 const app = getApp() // 步骤三:调用全局变量 Page({ data: { }, onLoad: function (options) { console.log(app.globalData.userName); }, })
第二种:url传值
// 步骤一:使用关键字bindtap绑定一个点击事件方法,data-index是传入一个值 <image class="btn-detail" src='/images/btn_detail.png' bindtap='toDetail' data-index='{{index}}'></image> // 步骤二:在脚本文件中定义这个方法(方法并不是定义在一个methods集合中的) Page({ data: {}, onLoad: function () {}, toDetail: function(e){ // index代表的遍历对象的下标 var index = e.currentTarget.dataset.index; var proList = this.data.proList; var title = proList[index].proName; wx.navigateTo({ url: '/pages/detail/detail?title='+title, }) } }) // 步骤三:在detail组件的脚本文件中接收title这个传入过来的值 Page({ data: {}, onLoad: function (options) { console.log(options.title); }, })
第三种:Storage传值
// 步骤一:使用关键字bindtap绑定一个点击事件方法,data-index是传入一个值 <image class="btn-detail" src='/images/btn_detail.png' bindtap='toDetail' data-index='{{index}}'></image> // 步骤二:在脚本文件中定义这个方法(方法并不是定义在一个methods集合中的) Page({ data: {}, onLoad: function () {}, toDetail: function(e){ var index = e.currentTarget.dataset.index; var proList = this.data.proList; var title = proList[index].proName; wx.setStorageSync('titleName', title); wx.navigateTo({ url: '/pages/detail/detail', }) } }) // 步骤三:在detail组件的脚本文件中使用wx.getStorageSync接收titleName这个传入过来的值 Page({ data: {}, onLoad: function (options) { var titlen = wx.getStorageSync('titleName'); console.log(titlen); }, })
标签:
信小程序的三种传值方式