前言
組件化開發很重要的一點就是組件與組件之間的解耦,MGJRouter_Swift 主要作用就在于此。MGJRouter_Swift 是一個高效/靈活的 iOS Swift 版 URL Router,完全實現了蘑菇街 Object-C 版 MGJRouter 的所有功能。
為什么本人要寫 MGJRouter_Swift ?
在 github 看了幾款不錯的 Object-C 版的 Router,比如:JLRoutes、HHRouter、MGJRouter,還是覺得 Object-C 版 MGJRouter 查找 URL 更高效。
雖然 Object-C 版 MGJRouter 在 Swift 中也可以使用,但是也存在問題,比如 block 回調這塊。所以說基于這個缺點,MGJRouter_Swift 就誕生了。雖然 github 上也有一款參照 Object-C 版 MGJRouter 仿寫的框架,但是卻去掉了 MGJRouter 的很多功能,不實用。
安裝
pod 'MGJRouter_Swift'
使用姿勢
1、最基本的使用;
image
2、當匹配到 URL 后,
routerParameters
會自帶幾個 key;
image
3、處理中文也沒有問題;
image
4、Open 時,可以傳一些 userinfo 過去;
image
5、如果有可變參數(包括 URL Query Parameter)會被自動解析;
image
6、定義一個全局的 URL Pattern 作為 Fallback;
image
7、當 Open 結束時,執行 Completion Block;
8、生成 URL;
URL 的處理一不小心,就容易散落在項目的各個角落,不容易管理。比如注冊時的 pattern 是mgj://beauty/:id
,然后 open 時就是mgj://beauty/123
,這樣到時候 url 有改動,處理起來就會很麻煩,不好統一管理。
所以 MGJRouter_Swift 提供了一個類方法來處理這個問題。
image
使用方式
image
這樣就可以在一個地方定義所有的 URL Pattern,使用時,用這個方法生成 URL 就行了。
協議
MGJRouter_Swift 被許可在 MIT 協議下使用。查閱 LICENSE 文件來獲得更多信息。
版本更新
- v0.1.3
新加了XWSwiftLoader
框架,用于load類方法注冊。
注??:XWSwiftLoader:Swift環境中+ (void)load;
與+ (void)initialize;
的實現。
- v0.1.2
...
更多文章
CocoaPods開源庫的搭建
CocoaPods搭建私有庫
CocoaPods搭建私有庫遇到問題
CocoaPods私有庫的升級維護
SKStoreReviewController之程序內評價
App應用程序圖標的動態更換
開源框架 MGJRouter_Swift
iOS的MVP設計模式
iOS插件化
iOS FMDB的使用
Swift之ReactiveSwift
OC之ReactiveCocoa
OC之ReactiveCocoa進階
iOS 性能考慮