亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 小程序 > 正文

小程序封裝路由文件和路由方法(5種全解析)

2020-03-21 15:54:59
字體:
來源:轉載
供稿:網友

小程序5種路由方法使用場景,封裝路由文件和路由方法,提升小程序體驗和開發效率

明確要解決的問題

  • 每次使用路由時,總是粘貼復制路徑,這樣在路徑有修改時,需要修改所有用到該路徑的地方,維護成本高
  • 路由跳轉時拼接參數讓人頭大,業務復雜時要拼接十幾個參數
  • 路由返回,只會返回一層,不能直接返回到目標頁面,因為不知道目標頁面是否在路由棧中,也不知道在第幾層

這些問題都可以通過封裝路由文件和路由方法解決,提供開發效率,減少BUG,省下來的時間可以多陪陪女朋友

封裝路由文件,對路由進行統一管理

在根目錄創建router.js

// 這是路由管理頁面,在此統一配置路由export default { 'index':'/index/index', // 首頁 'list':'/list/list', // list頁面 'top':'/top/top', // top頁面}

解決了第一個問題

封裝路由方法

路由方法有五個,常用的有三個switchTab、navigateTo、navigateBack
簡單介紹一下這五個方法及使用場景

  • switchTab,跳轉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,如果幫到了你,就給一顆star吧

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97在线免费观看视频| 亚洲视频第一页| 欧美人与物videos| 亚洲成人动漫在线播放| 国产69精品久久久久9| 日韩中文字幕免费| 国产视频观看一区| 亚洲精品一区中文字幕乱码| 伊人一区二区三区久久精品| 欧美中文字幕第一页| 国产精品专区h在线观看| 97超碰国产精品女人人人爽| 亚洲图片欧美午夜| 欧美精品少妇videofree| 亚洲天堂男人天堂女人天堂| 成人日韩在线电影| 91高清视频免费| 日韩成人在线免费观看| 97国产真实伦对白精彩视频8| 国产视频一区在线| 欧洲午夜精品久久久| 日韩av在线免费播放| 亚洲视频一区二区三区| 国产精品成人国产乱一区| 国产精品va在线播放| 疯狂做受xxxx欧美肥白少妇| 久久精品视频va| 亚洲国产精品人久久电影| 亚洲最新视频在线| 欧美午夜视频在线观看| 欧美激情免费在线| 91精品国产91久久久久久久久| 国产亚洲欧美日韩美女| 狠狠躁夜夜躁久久躁别揉| 亚洲精品在线视频| 成人有码在线播放| 日本高清不卡在线| 国产精品自产拍在线观| 日韩美女免费线视频| 91精品综合视频| 亚洲欧美日韩一区二区三区在线| 欧美在线视频免费观看| 欧美在线视频a| 久久噜噜噜精品国产亚洲综合| 久久久久久久一| 国产精品久久久999| 国产91成人在在线播放| 欧美第一页在线| 亚洲精品久久7777777| 青青草原一区二区| 国产91精品久久久| 97久久精品人搡人人玩| 国内免费精品永久在线视频| 国产精品一区二区av影院萌芽| 成人淫片在线看| 国产精品直播网红| 国产第一区电影| 亚洲精品福利免费在线观看| 亚洲一区二区国产| 韩国v欧美v日本v亚洲| 伊人久久大香线蕉av一区二区| 国产成人精品av在线| 狠狠综合久久av一区二区小说| 日韩中文字幕在线播放| 欧美中文字幕精品| 国产欧美久久一区二区| 亚洲精品国产suv| 日韩免费在线电影| 久久男人av资源网站| 狠狠久久亚洲欧美专区| 国产精品黄视频| 国产成人精品国内自产拍免费看| 亚洲综合最新在线| 亚洲精品视频在线播放| 精品国产乱码久久久久酒店| 欧洲美女7788成人免费视频| 一区二区三区在线播放欧美| 欧美性猛交xxxx偷拍洗澡| 亚洲第一免费网站| 欧美激情xxxx性bbbb| 日韩大片在线观看视频| 国产日本欧美一区二区三区| 亚洲a区在线视频| 秋霞av国产精品一区| 欧美在线观看视频| 国产91精品网站| 91亚洲一区精品| 久久色免费在线视频| 精品视频在线播放免| 日韩av网址在线观看| 精品久久久久久中文字幕大豆网| 97久久久免费福利网址| 欧美日韩在线视频首页| 庆余年2免费日韩剧观看大牛| 日韩视频免费中文字幕| 国产日韩欧美中文在线播放| 欧美在线观看网址综合| 97超级碰碰碰| 久久99精品国产99久久6尤物| 91精品国产沙发| 国产精品久久在线观看| 国产成人精品久久二区二区91| 最新国产成人av网站网址麻豆| 91超碰caoporn97人人| 亚洲午夜av电影| 成人黄色免费网站在线观看| 国产精品一二三在线| 国外成人免费在线播放| 久久久免费在线观看| 亚洲成人精品在线| 欧美一级大片视频| 国内精品小视频| 国产精品久久一区| 久久精品成人一区二区三区| 精品偷拍各种wc美女嘘嘘| 国产精品都在这里| 国产精品久久久久国产a级| 欧美丰满少妇xxxxx| 岛国av午夜精品| 中文字幕亚洲欧美日韩高清| 亚洲欧美中文字幕在线一区| 国产精品永久免费视频| 亚洲高清福利视频| 91免费国产网站| 97视频在线看| 亚洲一区二区三区乱码aⅴ| 久久久久久69| 精品日本美女福利在线观看| 亚洲激情自拍图| 中文字幕久久亚洲| 91亚洲精品久久久久久久久久久久| 国产香蕉精品视频一区二区三区| 亚洲成人av在线| 国产一区二中文字幕在线看| 亚洲一区精品电影| 久久影院模特热| 最近2019中文字幕mv免费看| 色与欲影视天天看综合网| 日韩网站免费观看| 久久精品国产亚洲精品| 欧美精品aaa| 国产丝袜一区视频在线观看| 欧美性猛交xxxx偷拍洗澡| 国产欧美一区二区白浆黑人| 亚洲自拍小视频| 亚洲视频在线视频| 国产视频自拍一区| 欧美猛交ⅹxxx乱大交视频| 日韩精品视频观看| 久久777国产线看观看精品| 久久久免费高清电视剧观看| 久久青草精品视频免费观看| 欧美激情视频一区二区三区不卡| 午夜精品99久久免费| 欧美有码在线视频| 91九色精品视频| 一本大道香蕉久在线播放29| 久久综合88中文色鬼| 91理论片午午论夜理片久久| 一区三区二区视频| 一区国产精品视频| 欧美激情在线观看视频| 欧美精品18videosex性欧美| 欧美激情视频给我|