-
Notifications
You must be signed in to change notification settings - Fork 207
Component 直击开发中的痛点
xiaojinzi123 edited this page Aug 1, 2020
·
5 revisions
下面只是 Component
顺带解决的痛点, 除了下面的痛点, 还有很多其他强大的功能哦
我们团队在整个开发过程中, 会有几个很恶心的痛点, 代码不能不写, 但是写了又恶心. 所以在组件化过程中, 发现这些是可以被解决的的.
于是 Component
从最早的设计上就考虑了一些痛点
- 你有没有因为在
Adater
或者Dialog
或者其他没有Activity
的地方需要startActivityForResult
. 痛点解决方式,0入侵 - 你有没有因为进入一些界面有前置条件而写一些恶心代码. 比如 A 界面需要定位成功才能进去. 你可能有以下两种方式去解决. 痛点解决:Component 页面拦截器
- 你不得不在任何一个跳转到 A 界面的地方去判断当前是否定位成功, 处理完毕之后再跳转. 这种方式恶心至极, 每次都要写一些固定代码
- 在目标界面去处理定位的事情. 这个方式相对来说比较好, 但是它毕竟已经进入了 A 界面, A 界面需要额外考虑这些, 并且还可能要展示定位失败的视图等等
- 你使用
ARouter
的 extra 做, 这个是一一种方式, 但是有两个问题:-
ARouter
的路由拦截器设计在子线程, 而定位这些漫长的, 通常你希望弹个框卡住用户操作, 你会发现写起来贼恶心.Component
设计在主线程的, 但是整个跳转是"异步的"
-
ARouter
的每个拦截器都是全局拦截器, 你每多一个这种拦截器, 都会加长整个路由的流程
-
- 整合
RxJava
,Component
本身完美支持RxJava
, 这样子你的跳转就可以嵌入你任何一个其他RxJava
流程中去了. 不会像之前一样整个流程被打断 - 你以为你写的界面, 你可以路由到就已经 ok 了吗? 其实不然, 每一个你写的界面、系统界面、第三方界面都应该是一个可路由的目标, 其他框架不能给任意一个界面标记路由. 这个也是一个痛点. 解决方案
- 比如拨打电话界面, 是需要申请权限才能进入的. 如果你能给拨打界面标记一个路由, 并且结合上面的页面拦截器. 你会发现这件事做起来舒服至极!
- 比如拍照界面, 需要申请相机权限. 同样可以这么处理.
- 当然了, 适用于任何一个你觉得可以标记的界面. 并结合页面拦截器会有奇效!
- 有些界面参数较多, 跳转入口也较多, 你会发现维护这些跳转的参数其实会比较头疼. 这时候你可以使用 类似
Retrofit
接口编程式跳转