iOS 组件化-JLRoutes

2021-04-02  本文已影响0人  搬砖的crystal

一、JLRoutes原理

运行机制是:保存一个全局的map(routeControllersMap),map中的key是url(scheme),value是对应存放的block数组,url和block都会一直保存在内存中,当打开一个url时,JLRoutes就会遍历这个全局map,通过url来执行对应的block。

1.原理详解
1.1原理逻辑

(1)routeControllersMap是全局的单例字典,字典key值对应一个标识,源码中的scheme,value值为这个标识对应的JLRoutes对象。
(2)JLRoutes对象有两个常用的属性,一个是scheme也就是JLRoutes的对象标识,也就是value值记录了自己的key。另外一个是routes数组,数组中存放了JLRRouteDefinition对象。
(3)JLRRouteDefinition对象为最终的具体模型,注册的跳转逻辑的所有信息,都存放在这个模型中,包括要实施操作的block。

1.2类
1.3注册路由
1.4查找路由
首先根据外部传进来的URL初始化一个JLRRouteRequest,然后用这个JLRRouteRequest在当前的路由数组里面依次request,每个规则都会生成一个response,但是只有符合条件的response才会match,最后取出匹配的JLRRouteResponse拿出其字典parameters里面对应的参数。
上一篇 下一篇

猜你喜欢

热点阅读