目录

  • 初始化
  • 按需微调
  • 文本输入及处理
  • 通过绝对路径引用资源
  • 路由及导航
  • 数据持久化
  • 网络请求

初始化

参考:
RN官网入门
第一章 RN环境搭建以及APP生成

注意,react-native-cli已被弃用!
最终初始化方法如下:

//安装yarn,替代npm
npm install -g yarn//最新version为0.69,要求用java 11来编译android
//用java 8更方便,所以指定RN version为0.65
npx react-native init MyApp --version 0.65

按需微调

  1. 更改applicationId,位于android/app/build.gradle
  2. 更改app_name,位于android/app/src/main/res/values/strings.xml
  3. 更改AppTheme,位于android/app/src/main/res/values/styles.xml
 <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"><item name="android:statusBarColor">#000000</item></style>

如上指定statusBarColor,以便RN实现透明状态栏:

 <StatusBartranslucent={true}backgroundColor={'#0f00'}barStyle={'dark-content'}/>
  1. 可设android:windowSoftInputMode=“adjustNothing”,以免输入键盘压缩页面,位于android/app/src/main/AndroidManifest.xml

文本输入及处理

参考:
RN官网TextInput
React-Native TextInput 只支持输入数字
React-Native输入数字,每4个隔一个空格

RN的输入控件为TextInput,设其**keyboardType={‘numeric’}**以便弹出数字键盘。
而要仅限输入数字,还得要用正则处理:

     const [phoneCode, phoneCode_] = useState('');...<TextInputplaceholder='输入验证码'maxLength={phoneCodeLength}keyboardType={'numeric'}value={phoneCode}onChangeText={(text) => {//"\D"代表非数字//"/g"代表全部处理text = text.replace(/\D+/g, '');//处理后的内容又填到输入框phoneCode_(text);}}/>

通过绝对路径引用资源

参考:
下面(1)、(2)、(3)内容一样,(1)时间最早!
(1) babel-plugin-module-resolver 模块解析插件
(2) react-native 相对项目路径导入组件 ___ babel-plugin-module-resolver
(3) babel-plugin-module-resolver
(4) React Native中绝对路径配置 babel-plugin-module-resolver
(5) 理解 babel.config.js 和 babelrc

安装插件

yarn add babel-plugin-module-resolver --dev

修改babel.config.js,位于项目根目录:

module.exports = {presets: ['module:metro-react-native-babel-preset'],plugins: [['module-resolver', {root: ['.'],alias: {'src': './src','res': './res',},}],],
};

然后便可化繁为简(需要重启metro,即yarn start)

<Imagesource={require('res/login_bg.png')} //之前为'../../res/login_bg.png'resizeMode='stretch'style={{width: '100%',height: '100%',position: 'absolute',}}
/>

路由及导航

参考:
react-navigation
第二章 RN的第一个项目:导航+底部条切换+页面跳转


数据持久化

参考:
《React-Native系列》28、 RN之AsyncStorage
RN 的持久化存储(AsyncStorage)的使用


网络请求

参考:
axios官网
Timeout feature in the axios library is not working

axios设置timeout没用,补救方案:

 let source = axios.CancelToken.source();let timeout = config.timeoutsetTimeout(() => {source.cancel(`timeout of ${timeout}ms`);}, timeout);config.cancelToken = source.token;axios.get(url, config);

记第一个RN(react-native)项目相关推荐

  1. React native 项目进阶(redux, redux saga, redux logger)

    之前利用知乎日报的api写了react-native的一个入门项目,传送文章地址React Native 项目入门和源码地址RN入门项目源码,目前github上的代码已经在原文的基础上增加了新的功能, ...

  2. React Native 项目整合 CodePush 完全指南

    作者 | 钱凯 杏仁移动开发工程师,前嵌入式工程师,关注大前端技术新潮流. 本文使用的环境: React@16.3.1 React Native@0.55.4 react-native-code-pu ...

  3. 如何高效管理 React Native 项目中的图片资源

    本文为 Marno 原创,转载必须保留出处! 公众号[ Marno ],关注后回复 RN 加入交流群 React Native 优秀开源项目大全:http://www.marno.cn 前言 刚开始写 ...

  4. 【腾讯Bugly干货分享】React Native项目实战总结

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 "8小时内拼工作,8小 ...

  5. 一个使用react native实现的短视频APP

    黄豆仔短视频APP 一个使用react native实现的短视频APP.该项目是我没事搞着玩,用react native 写的.用了很多的库同时也修改了几个库: react-native-card-s ...

  6. 技术实践丨React Native 项目 Web 端同构

    摘要:尽管 React Native 已经进入开源的第 6 个年头,距离发布 1.0 版本依旧是遥遥无期."Learn once, write anywhere",完全不影响 Re ...

  7. [RN] React Native 键盘管理 在Android TextInput遮盖,上移等问题解决办法

    [RN] React Native 键盘管理 在Android TextInput遮盖,上移等问题解决办法 参考文章: (1)[RN] React Native 键盘管理 在Android TextI ...

  8. React Native 项目常用第三方组件汇总

    React Native 项目常用第三方组件汇总 https://www.jianshu.com/p/d9cd9a868764?utm_campaign=maleskine&utm_conte ...

  9. [RN] React Native 实现图片预览

    [RN] React Native 实现图片预览 效果预览: 代码如下: 'use strict'; import React, {Component} from 'react'; import {I ...

  10. vscode 连接夜神模拟器 运行 react native项目 (很简单的方法)

    前言:我这种方式不需要过多配置,只是需要先启动Android studio ,之后再启动vsCode 准备阶段:下载夜神模拟器 1. 开启夜神服务 进入到夜神安装的bin目录下,执行 nox_adb. ...

最新文章

  1. 重磅!革命级AI代码补全工具,这款撸码利器让程序员界沸腾了!
  2. mybatis入门(六)----高级映射(一对一,一对多,多对多)
  3. Mysql加锁过程详解(2)-关于mysql 幻读理解
  4. pycharm怎么查看代码结构,看函数定义、变量定义、类定义索引、目录?(左方structure)
  5. 服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷...
  6. 36、JAVA_WEB开发基础之监听器
  7. sqlite查询空日期类型_SQLite比较日期
  8. Hibernate 入门之轻松上手 选择自 chainshun 的 Blog
  9. 20条.net编码习惯 【转】
  10. SQLServer 行转列,统计,二次分组
  11. 类似腾讯手机管家应用android源码
  12. 一文让你彻底了解iOS字体相关知识
  13. 服务器虚拟内存最佳设置范围,虚拟内存有什么用?虚拟内存设置多少合适?
  14. SpringAOP静态代理
  15. 文化网页设计成品 web网页设计实例作业 ——古典中国风工艺美术(9页) html+css+javascript网页设计实例
  16. throw 和 throws 的区别
  17. 从傅里叶变换到加窗傅里叶变换
  18. 51单片机定时器(T0/T1)的使用与配置流程
  19. 使用CDS view进行S4HANA的OData开发
  20. 数学奥赛狂砍10题!Meta发布全新定理证明器:AI即将接管数学?

热门文章

  1. 文件服务器之一:NFS 服务器
  2. 厦大C语言上机 1367 几何级数的计算机验证法
  3. Java封装的四个关键字
  4. python 实现 复制文件 及 复制文件夹
  5. 写给在工厂上班的一封信
  6. Ubuntu 添加root用户
  7. 【论文发表】认识SCI、EI、ISTP、IEEE等和算法论文
  8. 使用ERP系统管理生产订单的具体流程
  9. 如何修改数据表中的信息
  10. Maven配置阿里云仓库和本地仓库