React-Native-Blog是一个基于ReactNative
的移动端项目,另有Vue版本, Angular版本和React版本。
- 使用了ReactNative技术栈完成,包括了
react-native + react-navigation + react-native-scrollable-tab-view + react-native-storage + dva-mobile
等; - 后端接口利用
express + mongodb + redis
开发,后端地址请点我
- node v6
- npm v4
- react v16.3.0
- react-native v0.54.3
- react-navigation v1.5.8
- dva v1.2.1
- 分类文章列表与搜索记录缓存
- webview网页通信
- tabNavigator+stackNavigator使用
- 键盘弹起控制与tabbar控制
- 启动屏
- redux控制导航
- 分类与分页
- 分享
- tabbar动画显示与隐藏
- 读取缓存状态页签动画显示内容
- webview秒通信
- 点击webview图片,滚动预览
- 克隆安装依赖
git clone https://github.com/bestsamcn/react-native-blog.git cd react-native-blog npm install
- 修改
node_modules/dva/lib/creatDva
下的start
方法,266行开始 from:to:model.call(this, { namespace: '@@dva', state: 0, reducers: { UPDATE: function UPDATE(state) { return state + 1; } } });
if(!this._models.some(item=>item.namespace == '@@dva')){ model.call(this, { namespace: '@@dva', state: 0, reducers: { UPDATE: function UPDATE(state) { return state + 1; } } }); }
- 开发环境,需提前设置设置,模拟器需启动模拟器并通过
adb connect
相应模拟器服务可以通过adb devices
查看是否有设备连接react-native run-android
- 打包
cd android gradlew assembleRelease
- 安装
cd \android\app\build\outputs\apk adb install app-release.apk
- app.model should be unique 导致闪退,通过修改dva源码修复;
- 页签下划线不显示,是因为宽度为0的原因,以强制初始值为70, tabs宽度不稳定,直接通过tabs的长度和单个tab宽度相乘拿到
- header,footer的高度,查源码可知在手机上的各种高度
- message通信过慢
给个星星呗...