组件化方案真的有很多,那么这个组件化方案优秀在哪里?相比于 ARouter
,WMRouter
,ActivityRouter
,CC
,DDComponent
等开源的组件化框架,有哪些一样或者优秀的点
- 支持
androidx
,几乎没有其他组件化框架支持androidx
的 - 整个设计贴近原生,对原生的代码入侵极少,尽最大的可能保留原生的代码
- 在一些路由拦截器的执行线程的设计上,考虑到用户平时书写的
90%
代码都是在主线程的,
所以路由拦截器的执行线程也设计为主线程执行,可以让您放心的操作UI
、弹框等操作.
同时提供Callback
机制可以在拦截器中做任何耗时的任务
这点绝对是压倒性的优势 - 配套的
Idea Plugin
方便快速浏览,持续会更新此插件 - 路由的取消,基本上没有路由框架支持路由的取消,这也是一个很大的优势
- 可以手动用代码取消
- 路由自动取消,当发起路由的
Fragment
或者Activity
销毁的时候会取消
- 拦截器的种类有三种,足矣满足所有业务情况(具体看wiki)
- 路由拦截器(针对某一次路由)
- 页面拦截器(针对所有跳转到某一个界面的路由)
- 全局拦截器(针对全部路由)
- 目标界面的参数注入(目前仅支持基本数据类型,后续会支持Bundle中的所有类型)
- 跳转
- 自定义跳转(这样子就支持了第三方和系统的界面)
- 自定义
Intent
- 无缝对接
H5
- 0 配置可以拿到目标界面返回的
ActivityResult
,很多框架不支持或者需要入侵BaseActivity
- 服务发现和路由分开设计
- 其实这两块本来就是两个方面,我不清楚为什么很多方案中都柔和在一块
- Rx扩展库扩展完美结合了 RxJava2
了解更多请看 wiki 更多功能等你来发现
// 声明式路由接口调用
Router.withApi(AppApi.class).goToTestWebRouter(this);
一个帮助您识别路由和拦截器的库,减少您查找的时间,配合组件化使用
为了更好的能交流,这里新建了一个QQ群:870981195 或者扫描二维码来进群
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.