按惯例先放下载地址:牛读 v2.0.0 http://reader.liteneo.com/ 同时支持 iOS 以及 Android,欢迎品尝
之前一直想着跟着 React Native 的 Release 节奏,每一两个月发一个版本,但是这次却等了四个多月,一方面是要等某些我想要的特性被支持,一些严重的八阿哥被修复,另外一个原因就是这次更新我几乎重写了绝大部分代码逻辑
从用户的角度看,这次更新几乎没有大的更新,只有几处 UI 的更新,比如知乎日报详情页的视差效果以及集成了微信分享,但是对我来讲,这是一次脱胎换骨的更新
dva, 之前的版本没有使用任何 redux、mobx 之类的状态管理工具,因为我觉得整个 App 的逻辑并不复杂,但是事实并非如此,里面各种 ref
的使用使整个流程变得异常复杂,后来经过在 redux 和 mobx 中间纠结,最后选择了抱 redux 大腿,用过 redux 的应该都知道 redux 相对繁琐的写法,所以我选择了 dva
,一个封装了 redux + redux-saga 的状态管理库,然后就开始了漫长的重构之旅,dva
的体验非常棒,简化了 redux 的写法,以及与 rudx-saga 的集成,现在我将绝大部分逻辑从组件里移到了model
里,整个流程清晰多了
react-navigation, 在重构的过程中,RN 先是移除了 NavigationExperimental
,接着 depreciated 了一直以来的官方推荐的导航组件Navigator
, 转而推荐使用react-navigation
,牛读最开始也是用的Navigator
,后来因为NavigationExperimental
支持原生驱动动画,性能好太多,就切到了NavigationExperimental
,这个过程基本无痛,现在为了为以后做准备,于是切换到react-navigation
,这真的是件很痛苦的事,一方面是使用方式完全不一样,但最主要的原因是这个库本身问题太多,在重构的过程中,我一直都在反馈问题,提交 PR,终于把他打磨的满足我的需求了(但是对于其他一些场景,他依然还有很多问题没有解决),现在牛读里所有的转场动画都是用 react-navigation 实现的,包括设置界面的旋转
我把 dva + react-navigation 的使用提炼了一个 react-native-dva-starter,我会持续把我认为的 dva 和 react-navigation 在 React Native 中的最佳实践加进去,有兴趣的可以关注下
主要是我手上没有安卓手机,没办法测试,再就是精力实在有限,因为完全是利用业余时间开发,这次重写耗费了我太多时间,但是我还是花费了很多时间去适配安卓版本,就是想证明 React Native 也可以做出体验很好的安卓应用,目前除了因为阿婆的专利问题 Android 的 ScrollView 不支持 overScroll,其他的效果跟 iOS 上完全一致
1
Elven 2017-05-19 12:53:03 +08:00 via iPhone
为啥把 mobx 可怜巴巴的丢在那里 0.0
|
2
smallpath 2017-05-19 13:04:07 +08:00
升到 0.43.3 发现内联 Image 的宽高神特么是反过来的, 升到 0.44 发现 facebook 直接把 Navigator 删了。。。。。。。。
升了六七次 RN,没有一次升级能让我直接跑起来的 |
3
liteneo OP @Elven 因为 mobx 也是个很好的选择啊,而且可能是更好的选择,只是我选择了 redux 而已,mobx 的黑魔法能帮你省很多事,而且性能会更好,尤其是重复渲染的问题
|
4
mysticzt123 2017-05-19 21:19:22 +08:00
卧槽 牛神你怎么也玩 v2ex
|
5
BoiledEgg 2017-06-20 11:03:59 +08:00
最新更新的 2.1.0,小米 5,阅读知乎内容,页面会截断。
点开 https://www.v2ex.com/t/369718 这个帖子,100%闪退。 开发者头条点进去说没有找到相关内容,第三方被阻止了? |