微信小程序_頁面傳值

首先說點什么呢,因為公司需求,我也開始跳到小程序的坑里了,填坑之路艱辛而凄涼,好啦雖然有很多坑,但畢竟小程序才出現不久,有坑也正常,哈哈哈不扯淡了,來說說小程序的頁面傳值吧

一. 跨頁面傳值.

1 . 用 navigator標簽傳值或 wx.navigator, 比如
圖片.png

這里將good_id=16 參數傳入 detail 頁面, 然后 detail 頁面的 onload 方法內接受.

圖片.png

如果需要傳多個參數, 用 & 鏈接即可

圖片.png

圖片.png

如果要傳 數組, 字典等復雜類型, 要先用 JSON.stringify() 轉成字符串傳遞.

圖片.png

注 : 如果轉化的字符串中 有"?","&"或"="等這樣的符號,則只會傳遞符號以前的字符串,符號后面數據會被丟失,這個問題我猜想可能是小程序內部的路由處理 對這些符號敏感吧。所以有時候這里可以先用 encodeURIComponent() 進行轉碼,在目標頁面再用 decodeURIComponent() 解碼,這樣就可以避免數據丟失了。OK,這是第一種 依靠跳轉的url帶參數傳值

2 . 用getCurrentPages() 獲取棧中全部頁面的, 然后把數據寫入相應頁面.
  • 2.1. 先獲取全部頁面, 取出來是個數組, 然后用下標定位


    圖片.png

注:這里 這個 __route__ 是一個屬性,在最新的小程序中,已經可以用 route 這個屬性替換,即圖中的
arr[arr.length - 2].__route__arr[arr.length - 2].route 等效。

圖片.png

這里可以傳字符串, 也能傳數組等, 這樣就把 address 傳遞并接受了

注 : 這個方法適合 往后面傳值(即已經存在的頁面), 這樣才能在棧中找到并主動寫入數據, 且 一定要在 onshow() 方法中接受, 因為再次返回只執行onshow()方法.

  • 2.2 這里是在當前頁面直接賦值前一個頁面的data, 所以要在前一個頁面的onshow() 方法中做設置, 確保數據傳遞并更新到視圖層, 但這個這個方法有一個問題, 就是當前頁面直接賦值時, 容易造成時序問題, 導致數據錯亂. 推薦以下這種寫法
推薦這一種寫法.png
與上面一種的對比.png

注 : 是不是很熟悉?只是用系統的setData()替換了直接賦值, 其實arr[arr.length - 2] 就類似于 this/that , 而 arr[arr.length - 2] 就相當于前一頁的this/that , 且這樣寫, 在前一頁的onshow() 還不用設置, 數據傳遞與更新視圖層 一鍵搞定.

onshow() 方法截圖.png
3 . 寫入本地, 跨頁面在取出來 wx.setStorage/wx.getStorage等, 小程序中對寫入本地數據 封裝了很多方法, 各有側重, 這里就不多說了
圖片.png
圖片.png
4 . 把 數據聲明為全局變量, 可在任何頁面獲取
let detail = getApp().detail;

二. 頁內傳值

1 . 設置id的方法標識跳轉后傳遞后的參數
圖片.png

在bindtap定義的點擊方法 swiperTap : function(e) 中獲取

let id = e.currentTarget.id;
2 . 設置 data-xxx 的方法來標識要傳遞的值
圖片.png

注 : 這里 data-index="{{index}}"里的 {{index}} 是有效的, 在用wx-for 渲染視圖層時, index 代表點擊的下標. 在bindtap定義的點擊方法 swiperTap : function(e) 中獲取, 即

let index = e.currentTarget.dataset.index;

其他的參數取出也如此,

let type = e.currentTarget.dataset.type;
3 . form表單和input輸入框
圖片.png

圖片.png
圖片.png
圖片.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 方向: 1,跨頁面傳值 2,input輸入框值得獲取方式 進程: 1,跨頁面傳值方式 ->借由navigatio...
    F_W閱讀 1,284評論 2 4
  • 最近組里開發小程序,遇到了一個前端亙古不變的話題:頁面傳值剛開始使用路徑傳參解決,但是眾所周知: 各瀏覽器HTTP...
    Angeladaddy閱讀 1,994評論 4 4
  • 昨天看了一下微信小程序官方文檔,總結一下自己學習的個人心得. 首先從官方文檔給的框架說起,微信小程序官方文檔給出了...
    Mr大大大閱讀 47,243評論 9 68
  • 最近做了一個投票的微信小程序,開發過程主要還是參考官方文檔:https://mp.weixin.qq.com/de...
    june5253閱讀 22,051評論 1 11
  • 當初為了節省費用和去體驗香港國際機場的心態讓我買了往返桃源香港的機票,所以我必須從深圳趕去香港,我選擇在深圳北站買...
    古月NoraHu閱讀 724評論 1 3