微信小プログラムページ間のパス問題:wx.navigateBackは前のページに戻ってどのように参照しますか?JSはurlを介してjsonタイプパラメータをどのように渡して受信しますか?


微信小プログラムページ間のパス問題:wx.navigateBackは前のページに戻ってどのように参照しますか?JSはurlを介してjsonタイプパラメータをどのように渡して受信しますか?

  • 前言
  • 一、前のページに戻って
  • を参照
  • 二、URL伝参
  • 1. url伝達jsonタイプデータ
  • 2. 取得データ

  • 前言


    ページ間のパラメータ転送のセキュリティは強くありませんが、暗号化を必要としないデータの転送方式では避けられない場合があります.まず、前後関係のあるページについて、後のページのインタラクティブプロパティが変更された後に返される上位レベルのページも変更されますか?次に、ページをジャンプする必要があるシーンで、伝達するパラメータがjsonタイプであれば、どのようにパラメータを伝達して受信しますか?

    一、前のページに戻り、参照する


    ウィジェット内のすべてのページのルーティングはすべてフレームワークによって管理され、フレームワークはスタックの形式で現在のすべてのページを維持しています.つまり、私たちが言っているページスタックです.直接ルーティング切替方式を採用すると,ページスタックに古いページが存在し,ユーザがクリックして戻ると,依然として古いデータであり,ユーザ体験が悪い.ページスタックのインスタンスはgetCurrentPages()関数で取得できます.この関数の戻り値は、スタックの順序で配列され、最初の要素が最初のページ、最後の要素が現在のページです.前のページオブジェクトのsetData()メソッドを直接呼び出し、前のページにデータを保存します.
    var pages = getCurrentPages();
    var currPage = pages[pages.length - 1];   //    
    var prevPage = pages[pages.length - 2];  //     
         
    //           setData()  ,            
    prevPage.setData({
         
        data:data
    });
    //        
    wx.navigateBack({
         
        delta: -1
    });
    

    これにより,ユーザが後のページと対話した後,前のページに戻り,更新後の値を示す.

    二、URL伝参


    1.urlはjsonタイプデータを渡す


    jsonオブジェクトを文字列に変換してから符号化します.
    var url = encodeURIComponent(JSON.stringify(data))
    

    2.データの取得


    新しいページはurlを復号してからjsonなどのフォーマットに変換します
    onLoad: function (options) {
         
    	let data = JSON.parse(decodeURIComponent(options.data))
    }
    

    これにより、json、objectなどのタイプのデータをページ間で伝達することができるが、この方式は安全ではなく、安全値の低いデータ伝送にのみ使用されることに注意する.
    微信ウィジェットのページには、補足と指摘を歓迎する必要があります.