热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

快速学习RN之环境搭建和跑demo(一)

RN即ReactNative基于React框架针对移动端的跨平台框架,在学习RN前建议最好熟悉下html,css,js,当然如果比较急,那就直接上手吧,毕竟用学习前面基础的时间,R

RN即React Native 基于React框架针对移动端的跨平台框架,在学习RN前建议最好熟悉下html,css,js,当然如果比较急,那就直接上手吧,毕竟用学习前面基础的时间,RN也差不多了解了,下面的环境搭建是基于Windows系统,本身做安卓开发,安卓环境就不说了.

安装node.js

选择稳定版并配置好环境变量 命令窗口看到版本号了就ok

Microsoft Windows [版本 10.0.17134.345]
(c) 2018 Microsoft Corporation。保留所有权利。C:\Users\JIngYuchun>npm -v
6.4.1
C:\Users\JIngYuchun>

安装Python2

Python 的版本必须为 2.x,不支持 3.x

设置npm镜像地址,方便后面更快安装依赖

npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global

使用yarn替代npm速度更快

安装yarn

npm install -g yarn react-native-cli

设置yarn镜像地址

yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global

后面用yarn代替npm install命令,就使用yarn add 某第三方库名代替npm install 某第三方库名

配置安卓开发环境
  • 下载android studio最新稳定版目前是3.2
  • 下载jdk 1.8版本
  • 配置sdk环境变量
  • 配置jdk环境变量
下载编辑器VSCode

安装常用的必备插件

  • Auto Close Tag
  • Auto Rename Tag
  • Debugger for Chrome
  • Eslint
  • HTML CSS Support
  • Open in Browser
  • React Native Tools
  • vscode-icons
  • ...

初始化一个RN工程 AwesomeProject(你的工程名字)

react-native init AwesomeProject

使用VSCode编辑器打开工程文件夹

在VSCode 快捷键 Ctrl+~ 开启命令终端 其他终端都可以

//安装所需要的依赖库 成功后会出现一个node_moudles文件夹
yarn install
//构建运行应用(也是用gradle构建)
react-native run-android

​ 如果发现错误Could not generate a proxy class for class com.android.build.gradle.tasks.BuildArtifactReportTask,这个问题困扰我大半天时间,最终解决方案是降低gradle的插件版本为3.0.0 gradle版本4.4不用变即可


工程目录结构

仅先了解这些吧 从上至下

  • android //安卓工程
  • ios//iOS工程
  • node_moudles//依赖库
  • app.json//工程名字配置等
  • App.js//组件
  • index.js//启动入口
  • package.json//依赖配置信息
配置TypeScript

为什么这里直接就要是有TypeScript了呢,因为适用,因为公司的项目初始化就是TS的工程了,不得不学,JS虽然很强大,但TS更强大更规范了,不允许你乱写,没有规范哪里行,所以避免被JS乱象影响,直接使用TS吧,至于区别,这个我也是刚刚学习,大家自行自学哈

添加typescript

yarn add -D typescript
yarn add -D @types/react @types/react-native

生成tsconfig.json

tsc --init --pretty --sourceMap --target es2015 --outDir ./lib --rootDir ./ --module commonjs --jsx react

里面的参数配置目前我也不是很清楚,后面可以慢慢看,暂时不需要管.有需要去查阅文档 tsconfig.json

将App.js改成App.tsx 如果有报错,改掉错误

编写组件

//导包
import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
type Props = {};//这里不懂 没关系 不管它先
//创建组件
export default class App extends Component {render() {return (Welcome to React Native!To get started, edit App.js{instructions} );}
}
//样式设置
const styles = StyleSheet.create({container: {flex: 1,justifyContent: 'center',alignItems: 'center',backgroundColor: '#F5FCFF',},welcome: {fontSize: 20,textAlign: 'center',margin: 10,},instructions: {textAlign: 'center',color: '#333333',marginBottom: 5,},
});

  • 从上面的结构来看,我们想象 所有的组件是基于React.Component派生的子组件 就像android的自定义View一样
  • public class MyView extends View{} 是一样的道理
  • render() //渲染视图 就像android的onDraw()/draw()
  • return中的内容就是布局视图 这里直接返回 比android 简单的不要太多 配合export 关键字 导出的意思,就是对外提供使用,就像public 我理解.
  • View 布局标签 就相当于android中的LinerLayout,这时候你会想,那相对位置怎么设置呢,后面我们就会接触到Flex盒子布局,android中其实也有
  • Text 文本标签 就相当于android中的TextView
  • 还有很多很多标签,用到的时候去官方文档一查找就行了,不需要一个个的去学习.
  • style 控制布局和标签组件的样式 写法固定 记住就好 style={styles.xxx}或者style={{color:'white',xxxx,xxxx}}

好了,今天就写这些,不出意外,你现在已经跑起来了,大概有了一些了解RN的工程结构等,下面就是你自己随意霍霍App.tsx里的内容了 ,尝试修改布局和样式.

接下来我们要学习React Native的属性props和状态state 这块比较重要,等我了解差不多了,便会推送下一篇总结.

莫着急,一点一点来,一点一点攻破.



推荐阅读
  • 本文总结了在使用Ionic 5进行Android平台APK打包时遇到的问题,特别是针对QRScanner插件的改造。通过详细分析和提供具体的解决方法,帮助开发者顺利打包并优化应用性能。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍如何使用 Python 集成微信支付的三种主要方式:Native 支付、APP 支付和 JSAPI 支付。每种方式适用于不同的应用场景,如 PC 网站、移动端应用和公众号内支付等。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • Vue 开发与调试工具指南
    本文介绍了如何使用 Vue 调试工具,包括克隆仓库、安装依赖包、构建项目以及在 Chrome 浏览器中加载扩展的详细步骤。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
author-avatar
拍友2502882547
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有