首頁 >web前端 >js教程 >在微信小程式中如何實現頁面跳躍傳值

在微信小程式中如何實現頁面跳躍傳值

亚连
亚连原創
2018-06-20 11:41:362127瀏覽

這篇文章主要介紹了微信小程式實現頁面跳轉傳值以及獲取值的方法,結合實例形式總結分析了微信小程式頁面跳轉及傳值的常用操作技巧,需要的朋友可以參考下

本文實例講述了微信小程式實作頁面跳轉傳值以及取得值的方法。分享給大家供大家參考,具體如下:

在安卓中頁面跳轉傳值都是透過bundle,現在研究一下小程式的清單跳轉及頁面傳值。

my.wxml

<view class="container">
 <view bindtap="bindViewTap" class="userinfo">
  <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
  <text class="userinfo-nickname">{{userInfo.nickName}}</text>
 </view>
 <view class="info_list">
  <block wx:for="{{userListInfo}}" >
   <view class="weui_cell" data-index="{{item.index}}" id="{{item.index}}"
    bindtap="userinfo_item">
    <view class="weui_cell_hd">
     <image src="{{item.icon}}"></image>
    </view>
    <view class="weui_cell_bd">
     <view class="weui_cell_bd_p"> {{item.text}} </view>
    </view>
    <view wx:if="{{item.isunread}}" class="badge">{{item.unreadNum}}</view>
    <view class="with_arrow"></view>
   </view>
  </block>
 </view>
</view>

my.js

var app = getApp()
Page({
 data: {
  userInfo: {},
  userListInfo: [{
   icon: &#39;../../images/iconfont-dingdan.png&#39;,
   text: &#39;我的订单&#39;,
   isunread: true,
   unreadNum: 2,
   index:1
  }, {
   icon: &#39;../../images/iconfont-kefu.png&#39;,
   text: &#39;联系客服&#39;,
   index: 5
  }, {
   icon: &#39;../../images/iconfont-help.png&#39;,
   text: &#39;常见问题&#39;,
   index: 6
  }]
 },
 onLoad: function () {
  var that = this
  //调用应用实例的方法获取全局数据
  app.getUserInfo(function (userInfo) {
   //更新数据
   that.setData({
    userInfo: userInfo
   })
  })
 },
 userinfo_item: function (e) {
  var index = e.target.dataset.index;
  console.log("----index----" + index)
  console.log(&#39;-----id-----&#39;
   + e.currentTarget.id)
  var app = getApp();
  //设置全局的请求访问传递的参数
  app.requestId = e.currentTarget.id;
  app.requestIndex = index;
 }
})

#微信小程式設定id的方法識別來傳值

##在要跳轉的item處,設定一個id並給予目前的id賦值上對應的key值,


id="{{item.index}}"後我們在js的bindtap的回應事件中獲取,並傳遞到下一個介面中;
取得到id傳的值
透過
e.currentTarget.id;取得設定的id值,並透過設定全域物件的方式來傳遞數值,取得全域物件
var app=getApp(); //設定全域的請求存取傳遞的參數app.requestDetailid=id;
#在偵錯模式下:我們也可以在,wxml中查看到我們設定的每一個item的id值

透過使用data - xxxx 的方法標識來傳值

透過使用data - xxxx 的方法標識來傳值,xxxx可以自訂取名比my.wxml中的data-index。

如何取得data-xxxx傳遞的值?
在js的bindtap的回應事件中:
透過資料解析一層層找到數據,
var id=e.target.dataset.index(根據你的data-id的取名)如js中的兩個列印就是透過兩種不同方式獲得的id。

微信小程式如何跨頁面取得值

依據上面的方式設定要傳遞的值,頁面跳轉後,我們就需要在下一個頁面拿到傳遞的資料(

這個資料在傳遞前,就已經被設定成全域變數)相當於為全域變數增加了新的key,value在跳轉後的js頁面,接收傳遞過來的資料detail.js
同樣透過全域額方式取值出來,(即和app.js中取某個變數的值是一樣的)

var id=getApp().requestId;
var index=getApp().requestIndex;
console.log(id);
console.log(index);

透過連結傳參:

wx.navigateTo({
 url: &#39;/pages/account/feedback/feedback?test=feedback_test&name=jia&#39;,
 success: function(res) {},
 fail: function(res) {},
 complete: function(res) {},
})

點擊頁面跳轉時通過?方式傳參。 在跳轉後的頁面JS中做如下接收:

onLoad: function (e) {
  var movieid = getApp().requestId;
  var movieIndex = getApp().requestIndex;
  console.log("-----feedback--movieid--" + movieid +" " + movieIndex);
  console.log("-----feedback--test--" + e.test);
  console.log("-----feedback--name--" + e.name);
 },

感覺比較好的方法還是透過連結方式進行參數傳遞,第一種有些像安卓中進行頁面跳轉,把一些傳遞的參數寫到Application中,第二種是像透過bundle方式傳遞。前端小白總結,希望前端豐富的同學能提供更多想法。

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

在JS中如何實作網頁版計算器

使用JS如何實現小球拋物線軌跡運動

使用JavaScript如何實作二元樹遍歷

#在axios中如何實作cookie跨域

在JavaScript中如何實現彈性效果

以上是在微信小程式中如何實現頁面跳躍傳值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn