麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 系統(tǒng) > iOS > 正文

iOS路由(MGJRouter)的實(shí)現(xiàn)

2019-10-21 18:39:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

背景

最開始想做路由,是因?yàn)楫?dāng)時(shí)app中有大量與H5之間的交互,原生和H5的跳轉(zhuǎn)操作比較多比較頻繁,新增一個(gè)跳轉(zhuǎn)又涉及到改代碼發(fā)版本,為了統(tǒng)一iOS、安卓和H5的跳轉(zhuǎn),引入了路由。

作用

后來(lái)發(fā)現(xiàn)路由,還可很多作用。Router就像是個(gè)調(diào)度中心,各個(gè)模塊通過(guò)路由調(diào)度其他模塊,模塊之間不需要相互引用,調(diào)度方式更加統(tǒng)一,更加自由,能夠?qū)崿F(xiàn)解耦的作用,同時(shí)也為之后的組件化開發(fā)提供了基礎(chǔ)。

iOS,路由,MGJRouter

路由選擇

目前github優(yōu)秀的路由設(shè)計(jì)已經(jīng)有很多,如JLRoutes,MGJRouter,CTMediator。

JLRoutes提供的功能比較復(fù)雜,有很多我個(gè)人用不上的功能,所以沒(méi)有選擇。

CTMediator更適合業(yè)務(wù)比較復(fù)雜的情況,MGJRouter的使用上更加容易上手,功能也比較簡(jiǎn)單,更加適用于頁(yè)面跳轉(zhuǎn)這種業(yè)務(wù)比較多的場(chǎng)景。所以我項(xiàng)目中選擇了MGJRouter

JLRoutes

  1. 集成簡(jiǎn)單
  2. 可以處理各種各樣的url
  3. 支持通配符
  4. 支持多個(gè)scheme
  5. 比較純粹,不支持打開頁(yè)面后的值回傳。要自己再加工。

MGJRouter

  1. 代碼簡(jiǎn)單易懂
  2. 功能全面
  3. 支持push值回傳
  4. 支持多scheme
  5. openUrl時(shí)支持一個(gè)userInfo (造成了跟系統(tǒng)的不統(tǒng)一,多出來(lái)的參數(shù)還是可以放到url中,傳對(duì)象的時(shí)候有點(diǎn)用)(模塊內(nèi)部傳對(duì)象可以用,模塊間的話不應(yīng)該傳對(duì)象,會(huì)造成耦合)

MGJRouter

MGJRouter就一個(gè)單例類,使用前需要通過(guò)注冊(cè)組件,調(diào)用方通過(guò)URL調(diào)用服務(wù)方頁(yè)面,通過(guò)路由表的映射關(guān)系進(jìn)行關(guān)聯(lián),調(diào)用方可以傳入復(fù) 雜的參數(shù)、對(duì)象等。

基本跳轉(zhuǎn)主要是注冊(cè)組件,調(diào)用openURl方法,傳入?yún)?shù)即可實(shí)現(xiàn)。

[MGJRouter registerURLPattern:@"mgj://foo/bar" toHandler:^(NSDictionary *routerParameters) {  NSLog(@"routerParameterUserInfo:%@", routerParameters[MGJRouterParameterUserInfo]);}];[MGJRouter openURL:@"mgj://foo/bar"];

使用一個(gè)類來(lái)統(tǒng)一管理注冊(cè)的方法,再load方法中進(jìn)行注冊(cè),就不會(huì)到處看到注冊(cè)的代碼,方便管理。

iOS,路由,MGJRouter

url注冊(cè)管理類

很多人說(shuō)沒(méi)有反向傳值的方法,其實(shí)和我們其他跳轉(zhuǎn)一樣,傳參數(shù)的時(shí)候使用block即可解決。

[MGJRouter openURL:@"LWT://Test3/PushMainVC"withUserInfo:@{  @"navigationVC" : self.navigationController,  @"block":^(NSString * text){NSLog(@"%@",text); },  }      completion:nil];

代碼下載

demo中有MGJRouter各個(gè)方法的使用案例,包括跳轉(zhuǎn),獲取組件,正反向傳參。

MGJRouter使用Demo

 以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到IOS開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲午夜免费电影 | 有兽焉免费动画 | av成人免费在线观看 | 欧美视屏一区二区 | 免费一级毛片在线播放视频老 | 看片一区 | 狠狠99 | 福利一区二区三区视频在线观看 | 黄色网址你懂的 | 精品国产一区二区亚洲人成毛片 | 精品一区二区久久久久久按摩 | 精品国产观看 | 成人免费观看在线 | 欧美一级特黄aaaaaa在线看首页 | 牛牛热这里只有精品 | 91精品国产九九九久久久亚洲 | 日本a v免费观看 | 国产精品视频在线观看免费 | 91精品久久久久久久 | 成人在线视频精品 | 国产人成精品综合欧美成人 | av电影在线观看免费 | 一级毛片免费高清 | 免费久久久久 | 99精品国产一区二区三区 | 国产精品视频一区二区三区四 | 久久久久久久久日本理论电影 | 污黄视频在线观看 | 亚洲精品自在在线观看 | 国产精品久久久久久久亚洲按摩 | 四虎久草 | 欧美毛片免费观看 | 毛片福利 | 成人毛片免费播放 | 亚洲小视频网站 | 亚洲第五色综合网 | 国产一区二区在线免费 | 国产一有一级毛片视频 | 国产免费一级 | 久久男人视频 | 91专区在线观看 |