ReactNative开发环境的搭建与开发前准备(二)

简介: ReactNative开发环境的搭建与开发前准备

三、运行第一个项目HelloWorld


   如果上面的环境配置和开发工具的配置都已顺利完成,那么你离第一个ReactNative项目已经不远了,下面我们来通过ReactNative创建HelloWorld项目。


   在终端运行react-native init HelloWorld命令来创建ReactNative项目,这个命令是一个一站式集成命令,其会创建项目并且将所有依赖包都安装完成。命令成功执行后,进入到项目根目录中,如下:

image.png



使用react-native run-ios或者react-native run-android来进行iOS项目或者Android项目的运行,如果你看到如下图所示的界面,恭喜你,你的ReactNative项目已经可以跑起来了(需要注意:运行安卓项目的时候,安卓模拟器必须先启动):




需要注意,运行iOS项目时,会默认启动Xcode的默认模拟器,如果要启动特定的模拟器,可以使用如下命令:


react-native run-ios --simulator "iPhone SE"

xcrun simctl list devices命令可以打印出所有可用的iOS模拟器,示例如下:

image.png



观察HelloWorld项目结构,其目录如下图:

image.png



其中node_modules为node依赖包的目录,andorid文件夹为安卓项目目录,ios文件夹为iOS项目目录。index.android.js与index.ios.js两个文件是最为重要的两个文件,这两个文件是iOS项目与Android项目的入口文件,打开index.ios.js文件,将其中的代码修改如下:


import React, { Component } from 'react';

import {

 AppRegistry,

 StyleSheet,

 Text,

 View

} from 'react-native';


export default class HelloWorld extends Component {

 render() {

   return (

     <Text style={{

       flex:1,

       top:100,

       left:100,

       fontSize:30

     }}>HelloWorld</Text>  

   );

 }

}

AppRegistry.registerComponent('HelloWorld', () => HelloWorld);

上面的代码就是一个最简单的项目HelloWorld,在iOS模拟器中使用command+R来进行界面的刷新,效果如下:


image.png


在安卓模拟器中双击R键来进行界面的刷新。


提示:如果在iOS模拟器中使用command+R无效,需要将模拟器的Connect Hardware Keyboard进行勾选,如下:


image.png


四、ReactNative开发工具的选择


   facebook提供了一个叫做Nuclide的工具专门开发ReactNative应用,其实一个基于atom的集成开发环境,但是我个人更喜欢使用SublimeText来进行ReactNative应用的开发。通过安装相应的插件,SublimeText来编写ReactNative应用将十分畅快。


   首先下载SublineText编辑工具,可以在官网进行下载:


http://www.sublimetext.com/


在对SublimeText进行插件安装前,需要先为其安装包管理工具PackageControl。在SublimeText工具的导航中选择View下的Show Console来打开命令行,如下:


image.png


在命令行中输入如下代码进行,敲击回车进行安装:


SublimeText2:


import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')

SublimeText3:


import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

由于网络等多种原因,上面使用代码安装PackageControl的方法很大可能会失败,我们也可以从官网下载安装包,将其放在SublimeText的包安装目录中,重启SublimeText来进行安装,点击SublimeText的Preferences->Browse Packages选项可以浏览SublimeText的包目录:


image.png


将下载好的PackageControl安装包放入Installed Package目录中重启即可,如果没有这个目录,可以手动创建:




PackageControl的官方下载地址为:http://sublime.wbond.net/Package%20Control.sublime-package


温馨提示:PackageControl的官方下载地址访问起来也有一定难度,我将这个安装包放在了我的github上一份,如果需要,可以从下面的地址下载:


http://zyhshao.github.io/file/Package%20Control.sublime-package


   安装完成PackageControl工具后,即可使用其来进行SublimeText插件的安装。


在SublimeText中选择Preferences->PackageControl即可调出PackageControl命令面板,如下:




PackageControl中提供了许多实用的方法,例如install Package用来安装插件,List Packages用来查看已经安装过的插件,Remove Package用来删除一个已经安装的插件等,如下:




点击Install Package进入SublimeText插件的搜索界面,搜索到所需要安装的插件安装即可,如下:




温馨提示:在使用PackageContrl的Install Package命令时,很有可能会出现超时问题,原因是PackageControl需要拉取一个channels文件列表,而这个文件在国内往往难以访问到,我也在我的github上存放了一份备份,需要将PackageControl的channels拉取路径做下修改,选择SublimeText的Preferences->PackageSettings->PackageControl->Settings-Default选项,如下:




将其中的channels参数修改如下即可:


"channels": [

 "http://zyhshao.github.io/file/channel_v3.json"

],


目录
相关文章
|
1月前
|
前端开发 JavaScript API
React开发需要了解的10个库
本文首发于微信公众号“前端徐徐”,介绍了React及其常用库。React是由Meta开发的JavaScript库,用于构建动态用户界面,广泛应用于Facebook、Instagram等知名网站。文章详细讲解了Axios、Formik、React Helmet、React-Redux、React Router DOM、Dotenv、ESLint、Storybook、Framer Motion和React Bootstrap等库的使用方法和应用场景,帮助开发者提升开发效率和代码质量。
118 4
React开发需要了解的10个库
|
3月前
|
设计模式 存储 前端开发
React开发设计模式及原则概念问题之自定义Hooks的作用是什么,自定义Hooks设计时要遵循什么原则呢
React开发设计模式及原则概念问题之自定义Hooks的作用是什么,自定义Hooks设计时要遵循什么原则呢
|
4月前
|
前端开发 JavaScript 安全
TypeScript在React Hooks中的应用:提升React开发的类型安全与可维护性
【7月更文挑战第17天】TypeScript在React Hooks中的应用极大地提升了React应用的类型安全性和可维护性。通过为状态、依赖项和自定义Hooks指定明确的类型,开发者可以编写更加健壮、易于理解和维护的代码。随着React和TypeScript的不断发展,结合两者的优势将成为构建现代Web应用的标准做法。
|
1月前
|
前端开发 JavaScript 开发者
React 组件化开发最佳实践
【10月更文挑战第4天】React 组件化开发最佳实践
49 4
|
2月前
|
XML 移动开发 前端开发
使用duxapp开发 React Native App 事半功倍
对于Taro的壳子,或者原生React Native,都会存在 `android` `ios`这两个文件夹,而在duxapp中,这些文件夹的内容是自动生成的,那么对于需要在这些文件夹中修改的配置内容,例如包名、版本号、新架构开关等,都通过配置文件的方式配置了,而不需要需修改具体的文件
|
2月前
|
资源调度 JavaScript 前端开发
使用vite+react+ts+Ant Design开发后台管理项目(二)
使用vite+react+ts+Ant Design开发后台管理项目(二)
|
3月前
|
JavaScript 前端开发 安全
[译] 使用 TypeScript 开发 React Hooks
[译] 使用 TypeScript 开发 React Hooks
|
3月前
|
移动开发 前端开发 JavaScript
"跨界大战!React Native、Weex、Flutter:三大混合开发王者正面交锋,揭秘谁才是你移动应用开发的终极利器?"
【8月更文挑战第12天】随着移动应用开发的需求日益增长,高效构建跨平台应用成为关键。React Native、Weex与Flutter作为主流混合开发框架各具特色。React Native依托Facebook的强大支持,以接近原生的性能和丰富的组件库著称;Weex由阿里巴巴开发,性能优越尤其在大数据处理上表现突出;Flutter则凭借Google的支持及独特的Dart语言和Skia渲染引擎,提供出色的定制能力和开发效率。选择时需考量项目特性、团队技能及生态系统的成熟度。希望本文对比能助你做出最佳决策。
159 1
|
3月前
|
前端开发
React——开发调式工具安装【五】
React——开发调式工具安装【五】
31 0
React——开发调式工具安装【五】
|
3月前
|
开发者 自然语言处理 存储
语言不再是壁垒:掌握 JSF 国际化技巧,轻松构建多语言支持的 Web 应用
【8月更文挑战第31天】JavaServer Faces (JSF) 框架提供了强大的国际化 (I18N) 和本地化 (L10N) 支持,使开发者能轻松添加多语言功能。本文通过具体案例展示如何在 JSF 应用中实现多语言支持,包括创建项目、配置语言资源文件 (`messages_xx.properties`)、设置 `web.xml`、编写 Managed Bean (`LanguageBean`) 处理语言选择,以及使用 Facelets 页面 (`index.xhtml`) 显示多语言消息。通过这些步骤,你将学会如何配置 JSF 环境、编写语言资源文件,并实现动态语言切换。
42 0