JLRoutes——小人物上篮

看完后 HHRoute源码分析后,味道更佳,更易消化。

  • JLRoutes支持scheme,HHRoute没有

routeControllersMap = [[NSMutableDictionary alloc] init];

JLRoutes有一个routeControllersMap静态字典,保存了"sheme"到JLRoutes实例的对应关系。首先会去对应的scheme下找到url pattern,这个是HHRoute没有的

  • JLRoutes类中重要的类说明

    1. JLRRouteDefinition

    主要含有优先级,Url pattern,scheme的包装类

2. JLRRouteRequest

对被传进来的路由url进行,格式处理,比如去除主机名,分格pathcomponet,提取query参数

3. JLRRouteResponse

将 JLRRouteRequest和JLRRouteDefinition匹配后,返回最终的匹配结果和参数的类

  • JLRoutes对比HHRoute

1.JLRoutes优势是代码支持添加scheme,HHRoute的只支持滤除plist中的scheme,只能app间跳转url使用

HHRouter按照如下顺序注册两个url,后面match的时候只能找到StoryViewController,因为后来注册的如果地址一致,会重写前面的,为毛就不支持scheme呢??

 [[HHRouter shared] map:@"xw://user/:userId/"
         toControllerClass:[UserViewController class]];
 [[HHRouter shared] map:@"tn://user/:userId/"
         toControllerClass:[StoryViewController class]];
 [[HHRouter shared] matchController:@"xw://user/12"];
  [[HHRouter shared] matchController:@"tn://user/12"];

2.JLRoutes需要遍历数组中的JLRRouteDefinition与传进来的url匹配,而HHRoute只需要每一个pathcomponent到对应得字典中去找有没有这个key,实现更精巧

3.JLRoutes文件较大,HHRoute文件很小

JLRoutes——小人物上篮_第1张图片
HHRoute小人物上篮,得分!.jpeg

你可能感兴趣的:(JLRoutes——小人物上篮)