项目地址:http://liu12fei08fei.github.io/blog/41react-native.html
说明
• 项目总结代码地址
• 从项目开始启动(2018-07-02)到项目进入测试(2018-08-20)
• 从我基本没用过react,到直接上手react-native
• 其实从内心我是又爱又怕,爱是我确实很早就像下手除Vue以外的框架,多接触和学习一些不一样的思想;怕是前端就我一个,一切坑都由自己来抗;可想而知,内外压力一定会很大
• 过程就是日复一日的研究在研究,不停地问问题,然后在研究;开发rn很想开发小程序,更多时候还是利用rn提供的组件,再加上一些js技巧
• 结果:自己对社区的利用更加的顺手,面对难题不在过分畏惧而是不断深入思考,直至解决
• 心理:其实直面难题并不难,难的是自己看到了难题背后还有无数个难题,这时候自己就不想面对了;后来知道与其逃避,不如遇到一个干掉一个,不然攻城狮不是白叫了
• 下面是自己在实际中从开始到结束总结的一些东西,后续随着进展还会更新
简介
• 记录开发react-native中各种有意思的事情
• 最新探索,用来进行各种尝试的空间
• 完成的探索,记录所有已经完成的模块、功能和效果
• 中转站,暂时无用
安装
全局脚手架
npm i -g react-native-cli
安装基础项目
react-native init
运行
优化后的运行
• ios:npm run ios
• android:npm run android
• ios and android:npm run s
原始启动
• ios:react-native run-ios
• android:react-native run-android
资源
• navigation集成
• 集成icons
• react-native-easy-toast
• rn资源列表
• 横向滑动展示按钮效果
• 自定义行动列表
• 密码输入效果
• 选项卡导航之间滑动
• 二维码生成
未探索的资源
365个库中寻找77个
1. select选择控件
2. 开关式选择列表
3. 表情选择器
4. 左右滑动层
5. 手机号选择控件
6. 登录动画
7. 图片查看器
8. 菜单操作动画
9. 滑动操作图片展示样式
10. 操作打字效果
11. 声音可视化
12. 占位符
13. 图片查看器
14. 模糊背景效果
15. 本地图片超级操作
16. 四面八方拖动效果
17. 信用卡输入效果
18. 展开动画效果
19. chart
20. 初始化启动页
21. 日期
22. 左右滑动操作卡片效果
23. 列表拖拽
24. chart
25. 密码锁效果
26. 星级评价
27. 手动签字
28. 滑动时间轴效果
29. 国家26字母选择
30. PDF查看
31. 26字母选择
32. 分享
33. 对话框
34. 电话、地址等操作
35. 后台信息保护
36. 图片查看器
37. 左右滑动动画
38. 无网络操作
39. 颜色选择器
40. 左右滑动tab动效
41. 加载中效果
42. 左右滑动效果,类似酷划锁屏
43. 二维码生成器
44. 图片查看器
45. 视差效果
46. 日期
47. 点击效果、
48. 扇形菜单
49. 手势识别
新增页面需要在三个地方进行操作
1. data里面的complete.js中添加数据,方便在完成的探索中出现
2. navigators中的AppStackNavigators.js里面进行引入=>注册,使得路由正常
3. pages里面添加页面
优化package.json使开发更加方便
• 在scripts中添加,如下内容:
"ios":"react-native run-ios",
"android":"react-native run-android",
"s":"npm run ios && npm run android",
flex布局常用属性
• 防止在flex中出现,固定元素被挤压的问题,使用flex:1进行优化
display: 'flex';
flexDirection: row | row-reverse | column | column-reverse;
flexWrap: nowrap | wrap | wrap-reverse;
flexFlow: || ;
justifyContent: flex-start | flex-end | center | space-between | space-around;
alignItems: flex-start | flex-end | center | baseline | stretch;
alignContent: flex-start | flex-end | center | space-between | space-around | stretch;

order: ;
flexGrow: ; /* default 0 /
flexShrink: ; /
default 1 /
flexBasis: | auto; /
default auto */
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
alignSelf: auto | flex-start | flex-end | center | baseline | stretch;
图片
图片使用

命名规则
• icon_test.png
• icon_test@2x.png
• icon_test@3x.png
链接原生库
第一步
安装带原生依赖的库
npm install --save
第二步
运行以下命令,它会根据package.json文件中的dependencies和devDependencies记录来链接所有需要链接的库
react-native link
开发技巧
• 启动hot或者debug的时候,切记不要同时启动ios and android,两者会发生冲突,导致出现程序崩溃,从而影响开发
• 最好的方式是,启动一个hot或debug,这样可以良好的进行开发;另一个手动足够了
处理触摸事件
使用"Touchable"开头的一系列组件
通过onPress属性接受一个点击事件的处理函数
• 两种方式绑定事件,并处理点击范围
• 推荐第二种,方便传递数据
_onPressButton=((item)=>{
alert(1)
console.log(item);
})
render() {
return (

{this.state.bg}

{
this._onPressButton(this.state.bg)
}}>

{this.state.bg}

);
}
解决版本冲突问题
js版本和rn版本出现冲突
• Watchman是由Facebook提供的监视文件系统变更的工具。安装此工具可以提高开发时的性能(packager可以快速捕捉文件的变化从而实现实时刷新)。
• 清除Watchman:watchman watch-del-all
• 清除rn缓存:react-native start --reset-cache
解决路由失效问题
• createTabNavigator要在createStackNavigator里面进行注册,才能够使用createStackNavigator具有的方法,这个是我第二次配置的时候掉进的一个坑
this.props.navigation属性详细说明
• 在createTabNavigator里面没有push、replace等方法
• 在createStackNavigator中存在push、replace等方法
AsyncStorage保存报错
JSON value '' of type NSNull
• 当保存值为undefined的时候,报错
• 防止这种问题发生最好在this.state中保存初始值为空,必要时可以提醒用户
react-native支持的style props
• 查看最新版属性支持情况,最简单的直接在页面使用错误的属性,然后查看报错信息

react-native开发总结的更多相关文章

  1. React Native开发入门

    目录: 一.前言 二.什么是React Native 三.开发环境搭建 四.预备知识 五.最简单的React Native小程序 六.总结 七.参考资料   一.前言 虽然只是简单的了解了一下Reac ...

  2. React Native开发技术周报2

    (1).资讯 1.React Native 0.22_rc版本发布 添加了热自动重载功能 (2).技术文章 1.用 React Native 设计的第一个 iOS 应用 我们想为用户设计一款移动端的应 ...

  3. React Native开发技术周报1

    (一).资讯 1.React Native 0.21版本发布,最新版本功能特点,修复的Bug可以看一下已翻译 重要:如果升级 Android 项目到这个版本一定要读! 我们简化了 Android 应用 ...

  4. DECO 一个REACT NAtive 开发IDE工具

    DECO 一个REACT NAtive 开发IDE工具. 目前只支持 OS,NO WINDOWS https://www.decosoftware.com/ 一个方便的快速 ERXPRESS 教程:h ...

  5. React Native 开发之 (02) 用Sublime 3作为React Native的开发IDE

    Sublime Text是一个代码编辑器.也是HTML和散文先进的文本编辑器.漂亮的用户界面和非凡的功能,例如:迷你地图,多选择Python插件,代码段等等.完全可自定义键绑定,菜单和工具栏等等.漂亮 ...

  6. React Native 开发笔记

    ReactNativeDemo 学习ReactNative开发,搭建ReactNative第一个项目 React Native 开发笔记 1.安装Homebrew $ /usr/bin/ruby -e ...

  7. 【转】【React Native开发】

    [React Native开发]React Native控件之ListView组件讲解以及最齐全实例(19)  [React Native开发]React Native控件之Touchable*系列组 ...

  8. React Native开发的通讯录应用

    React Native开发的通讯录应用(使用JavaScript开发原生iOS应用,vczero) 0.前言: 项目地址:https://github.com/vczero/React-Native ...

  9. iOS程序员的React Native开发工具集

    本文整理了React Native iOS开发过程中有用的工具.服务.测试.库以及网站等. 工具 你可以选择不同的开发环境:DECO.EXPO或者你可以使用Nuclide+Atom,目前我使用EXPO ...

  10. React-Native(二):React Native开发工具vs code配置

    从网上翻阅了一些开发react-native的开发工具时,发现其实可选的工具还是比较多的Sublime Text,WebStrom,Atom+Nuclide,vs code 等.因为我用.net生态环 ...

随机推荐

  1. python_docx制作word文档

    一.docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象 ...

  2. CVE-2012-0158基于exp分析

    CVE-2012-0158这个洞我之前分析过,漏洞战争这本书里也写过,但是都是用poc分析的,我这次找了一个弹计算器的exp来分析,感觉用poc和用exp还是不一样的,从exp分析要比从poc分析更复 ...

  3. 一步一步学习IdentityServer3 (5)

    这篇文章介绍下数据持久化问题,官方例子可能都是缓存数据 Client  User Scope 下面介绍下怎么使用数据库持久化 这里需要导入nuget包 :IdentityServer3.EntityF ...

  4. Android Studio 升级为3.1 踩到的坑

    原文:https://blog.csdn.net/xiariluoxue/article/details/80050700 AndroidStudio.gradle.buildToolsVersion ...

  5. 一行代码实现Okhttp,Retrofit,Glide下载上传进度监听

    https://mp.weixin.qq.com/s/bopDUFMB7EiK-MhLc3KDXQ essyan 鸿洋 2017-06-29 本文作者 本文由jessyan投稿. jessyan的博客 ...

  6. day7 socket网络编程

    Python Socket网络编程 Socket是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于Socket来完成通信的 ...

  7. C语言:奇偶归一猜想

    1.奇偶归一猜想——求多少步归一.(10分) 题目内容: 奇偶归一猜想——对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1. 如n = 11,得 ...

  8. 牛客网 桂林电子科技大学第三届ACM程序设计竞赛 C.二元-K个二元组最小值和最大-优先队列+贪心(思维)

    链接:https://ac.nowcoder.com/acm/contest/558/C来源:牛客网 小猫在研究二元组. 小猫在研究最大值. 给定N个二元组(a1,b1),(a2,b2),…,(aN, ...

  9. Java 中的数据类型

    我们学习Java就是为了编写程序完成功能,而什么是程序呢?程序 = 数据结构 + 算法. 分开看,数据结构指的是数据与数据之间的关系,那我们先来了解一下Java中的数据都是怎么表示的呢 ?也就是说数据 ...

  10. iOS系统中导航栏的转场解决方案与最佳实践

    背景 目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美.有的方案不能满足复杂的页面跳转场景,有的方案迁移成本较大,为此我们 ...