ルーティングファイルとルーティング方法(5つの完全解析)


小さいプログラムの5種類のルートの方法はシーンを使って、ルートのファイルとルートの方法をカプセル化して、小さいプログラムの体験と開発の効率を高めます。
解決すべき問題を明確にする
  • は、ルーティングを使用するたびに、いつもコピーパスを貼り付けます。このように経路が変更された場合、その経路を使用するすべての場所を変更して、維持コストが高い
  • ルーティング・ジャンプ時のスプライス・パラメータは人の頭を大きくし、業務が複雑な時に十数個のパラメータ
  • をつなぎ合わせます。
  • ルートは戻ります。1階に戻るだけで、目的ページに直接戻ることができません。目的ページがルートスタックにあるかどうかは分かりません。何階目の
  • にあるかは分かりません。
    これらの問題はすべてルートファイルとルートの方法をカプセル化して解決することができて、開発効率を提供して、BUGを減らして、節約する時間は多く彼女に付き添うことができます。
    ルートファイルをカプセル化し、ルートを一括管理する。
    ルートディレクトリでrouter.jsを作成します。
    
    //         ,        
    export default {
     'index':'/index/index', //   
     'list':'/list/list', // list  
     'top':'/top/top', // top  
    }
    
    最初の問題を解決しました。
    パッケージルーティング方法
    ルートの方法は5つあります。よく使うのは3つのswitch Tab、navigateTo、navigateBackです。
    この5つの方法と使用シーンを簡単に紹介します。
  • switch Tab、tabBarページ専用にジャンプして、その他のページはスタックを出して、新しいページは倉庫の
  • に入ります。
  • navigateToで最もよく使われているルーティング・ジャンプは、ページ・スタックに参加して、戻りが許可されます。つまり、新しいページは絶えずスタック
  • に入ります。
  • navigateBackは、ターゲットページ
  • に到達するまで、ページスタック内に存在するページに戻ることができます。
  • redirectToは現在のページを閉じて、あるページにジャンプして、現在のページはページスタックに参加しません。つまり、現在のページは戻ります。例えば、支払いページ、支払い完了後、ユーザーにお支払いページに戻らないようにしてください。商品が削除された後、またnavigateBackを通じて商品を削除します。体験はきっとよくないと思います。現在のページの出庫と表現しています。新しいページはスタック
  • に入ります。
  • reLaunchはすべてのページを閉じて、あるページを開けて、任意のページを開けてtabBarを含んで、ある操作を強制的に完成するページに適合しています。例えば、登録したユーザーがクリックして終了したら、ログインページに入ります。戻ってから帰ることはできません。そのまま登録または登録しなければなりません。これを使って、すべてのページがスタックから出るように表現します。新しいページは
  • に入ります。
    パッケージを開始し、ルートディレクトリでutils.jsを作成します。
    
    //       
    export default {
    
     /** 
      * function
      * @param {string} url        
      * @param {Object} param           
      * @description          ,  json      param  ,       JSON.parse(options.param)  
      */ 
     navigateTo(url,param={}){
      if(param){
       url+=`?param=${JSON.stringify(param)}`
      }
      wx.navigateTo({
       url:url,
       fail(err) {
        console.log('navigateTo    ',err) 
       },
      })
     },
    
    
      /** 
      * function
      * @param {string} url        
      * @param {Object} param           ,            navigateTo ,      ,          
      * @description       ,       ,             ,   ,         ,       ,    navigateTo        
      */  
     navigateBack(url,param={}){
      const pagesList = getCurrentPages()
      let index = pagesList.findIndex(e=>{
       return url.indexOf(e.route)>=0
      })
      if(index == -1){ //        ,    navigateTo  
       this.navigateTo(url,param)
      }else{
       wx.navigateBack({
        delta: pagesList.length-1-index,
        fail(err){
         console.log('navigateBack    ',err)
        }
       })
      }
     },
    
    
     switchTab(url){ //   switchTab,switchTab     
      wx.switchTab({
       url:url
      })
     },
     redirectTo(url,param={}){ //   redirectTo, navigateTo    
      if(param){
       url+=`?param=${JSON.stringify(param)}`
      }
      wx.redirectTo({
       url:url,
       fail(err) {
        console.log('redirectTo    ',err) 
       },
      })
     },
     reLaunch(url,param={}){ //   reLaunch, navigateTo    
      if(param){
       url+=`?param=${JSON.stringify(param)}`        ,      ,       ,      !
      }
      wx.reLaunch({
       url:url,
       fail(err) {
        console.log('reLaunch    ',err) 
       },
      })
     }
    }
    
    
    以上のパラメータのパッケージは第二の問題を解決しました。navigateBackのパッケージは第三の問題を解決しました。
    締め括りをつける
    小さいプログラムのルートはジャンプして多くの方法があって、しかし具体的なシーンの下で適当なのは一つだけあって、適切なルートを選んでジャンプして方式を跳びます。
    ウィジェットコードのセグメントアドレスhttps://developers.weixin.qq.com/s/CsoJwDmR7B8N
    github、助けられたらスターをください。
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。