React Native常用IDE推荐与安装配置

http://blog.csdn.net/u014484863/article/details/51554428


(一)前言

上一讲提到了React Native框架安装和运行,以及创建了一个项目并介绍这个项目结构。这样介绍项目项目结构其实极其不方便,这一节将介绍开发ReactNative常用的IDE. 所谓工欲善其事必先利其器,做React Native开发也和其他应用开发一样。现在推荐使用几款比较好的IDE: sublime、webstorm以及官网推荐的Nuclide、VSCode。下面主要介绍其中的三款IDE—— webstorm、Nuclide以及VSCode。

(二)Nuclide常规安装以及配置

Nuclide是Facebook专门为React开发的IDE,官网推荐。但是Nuclide是在Atom基础上面提供了一系列统一的插件。所以我们需要首先安装Atom。
Nuclide项目官方地址:https://github.com/facebook/nuclide

2.1 Atom安装

Atom是一个开源版本的编辑器,非常强大以及完美体验,Atom最大的特色就是可以安装很多的插件来完成我们的需求。官网地址:https://atom.io/去官网下载安装即可。

2.2 Nuclide 安装(不推荐安装方式)

Atom已经安装成功了,下面开始安装Nuclide,直接打开Atom软件,点击Atom-> Preferences打开Setting,然后点击install,输入nuclide-installer搜索,进行下载即可,如下图:

这种方式我们是选择插件下载进行安装,另外的一种方式我们可以直接在命令行执行以下命令(利用Atom的包管理器apm安装):

apm install nuclide
  • 1
  • 1

最后重启一下Atom即可。不过这两种方式都不太推荐大家使用,这两种方式一方面是安装速度比较慢,而且下载安装完之后Atom会很卡,然后提示找不到Nuclide相关模块。

2.3 Nuclide安装(强烈推荐安装方式)

Nuclide项目官方地址:https://github.com/facebook/nuclide,我们知道该项目是Facebook官方推荐的,当然我们也给开发者提供了一种源代码编译安装的方式。使用起来非常简单:

git clone https://github.com/facebook/nuclide.git
cd nuclide
npm install
apm link
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

终端安装截图如下:

这样就安装完成,可以开始写React Native项目代码了。至于项目初始化以及编译运行方法,大家可以看前一篇文章哦!这里不再赘述。

(三) WebStorm IDE 介绍和安装

我相信做工Web前段的童鞋们,肯定对WebStorm IDE 非常熟悉,WebStorm是jetbrains公司旗下一款JavaScript开发工具。被广大中国JS开发者誉为“Web前端开发神奇”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。该IDE官网地址:https://www.jetbrains.com/webstorm/。该新版本已经支持了React了,所以在现如今的开发阶段WebStorm已经算是支持性最好的IDE了,大家有兴趣可以下载使用一下哦!但是…….要收费的,要收费的。土豪忽略,至于破解版本看你自己了。

最后通过WebStorm打开我们一个已经存在的React Native项目。

(四)VSCode安装以及插件配置

直接讲VSCode安装实在突兀,先介绍一下VSCode。

在 Build 2015 大会上,微软除了发布了 Microsoft Edge 浏览器和新的 Windows 10 系统外,最大的惊喜莫过于宣布推出免费跨平台的 Visual Studio Code 编辑器了!

Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、Git等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及Linux,运行流畅,可谓是微软的良心之作……

4.1 安装Visual Studio Code

下载地址:https://code.visualstudio.com/Updates
下载下来直接拖到Application中就可以使用了。

4.2 安装VSCode扩展工具

如果在VSCode上开发React Native,安装一个扩展工具可以带来极大的方便以及提高开发效率。该插件可以提供以下这些功能:调试代码、命令面板终端快速执行Reac-native命令、代码智能补全、React Native API以及React对象搜索浏览。
使用效果演示如下:

安装步骤:
打开VSCode软件,按 Fn+F1;
键入 ext install React Native;
点击安装;
重启VSCode。截图如下:

如果你没有安装React-native,请参考前面的文章安装。React-native-cli要求在0.1.10以上版本;React-Native要求在0.19以上版本。

4.3 使用VSCode于React Native项目

第一:调试配置
首先导入项目到VSCode中,点击debugger icon,然后点击配置icon,然后选择React Native。如下图:

VSCode将在项目中生成一个 launch.json,这个文件包含一些默认配置,例如下面所显示:

你可以修改哪些配置或者添加新的配置到这个列表中。你也可以利用在配置文件中其它的字段,例如,你能修改 target 字段指定iOS调试的模拟器

第二:开始调试(Start debug session)
为了开始调试,通过配置下拉框选择一个调试项,然后点击运行箭头或者Fn+F5按键。这一步相当于Android平台运行的运行方式:react-native run-native;
iOS平台在Xcode中运行项目。
如图所示:

开发者可以调试Android平台的模拟器与设备,但是iOS平台的模拟器也是使用Fn + F5,但是iOS平台真机调试需要手动配置一些东西。配置如下:
调试iOS真机(Debugging on iOS device):

  • 需要安装 ideviceinstaller 命令行:brew install ideviceinstaller
  • 配置launch.json文件,设置target为“device”
  • 根据这篇文章真机配置去修改jsCodeLocation IP在你的应用中
  • 然后点击运行或者 Fn+F5 运行程序。
  • 摇一摇设备,打开开发者菜单,并且选择”Debug in Chrome”

4.4 命令面板终端中使用React Native命令

在命令面板中,可以匹配React Native类型命令,并且选择命令,如下图所示:

  • 运行Android命令,触发react-native run-android 来进行打开android app
  • 运行iOS命令,触发react-native run-ios来进行打开并且在iOS模拟器中运行(iPhone 6)
  • Packager命令,可以允许我们打开/关闭React-Packager

4.5 使用智能提醒(Using IntelliSense)

代码智能提醒可以帮助我们发现React Native中相关对象,方法以及参数,具体效果如下图所示:

4.6 开启智能提醒

【注意】:这部分涉及到老版本的VSCode和React Native工具。最新版的VSCode(1.1.1)支持智能提醒For Salsa,以前的老版本属于测试阶段,需要开启智能提醒。这些指导说明支持老版本(<= 0.10.9)

React Native智能提醒功能依赖于支持JSX语法的实验性特性在VS Code,打开了这些特性,你将会立马看到如下一个提醒当你打开一个React Native项目。如图:

该提醒是一次性的开启JSX支持,我们需要重启VS Code来让该智能提醒功能生效。同时我们可以验证是否已经正确安装,如果显示如下的状态条,就表示当前已经开启了智能提醒功能。

一旦你遵循以上的步骤进行开启智能提醒功能,你就可以在代码编辑器中看到React Native库中的对象,方法,参数相关提醒了。

下面是一些开启JSX支持,VS Code的配置做了一些如下修改:

①.环境变量VSCODE_TSJS=1设置来开启Salsa

②.Salsa需要最起码TypeScript 1.8版本,但是最终1.8发布版本还不可用。插件typescript@nexet安装在~/.vscode

③.在.vscode目录中生成一个setting.json文件,文件中使用typescript.tsdk来指向typescript@next安装的位置

④.在项目根目录中创建tsconfig.json文件,并且配置allowsJs:true来允许TypeScript来处理JavaScript文件

⑤.React Native的Typing复制到.vscode目录中

4.7 存在已知问题:

下面列表一下,在使用本插件中可能会遇到的一些已知的问题。

①.调试器不能关闭断点: 该调试器仅仅会在通过VS Code打开packager服务中运行。如果packager在VS Code外部运行需要关闭packager

②.’adb’ 命令没有找到: 如果你遇到adb:command not founc,那么你需要进行配置android环境变量了。最好把PATH和ANDROID_HOME环境变量都配置上.

③.目标iPhone 6不工作:当使用iPhone6运行app的时候,该为一个已知的问题,详细请点击:

最后这里这边查看已经解决的所有的问题。

转载自:http://www.lcode.org/vscode-react-native-tools/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如果组件之中有复用的代码,需要重新创建一个父类,父类中存储公共代码,返回子类,同时把公用属性...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例如我们的 setState 函数式同步执行的,我们的事件处理直接绑定在了 dom 元素上,这些都跟 re...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom 转为真实 dom 进行挂载。其实函数是组件和类组件也是在这个基础上包裹了一层,一个是调...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使用,可能是不了解。我公司的项目就没有使用,但是在很多三方库中都有使用。本小节我们来学习下如果使用该...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接触 react 就一直使用 mobx 库,上手简单不复杂。
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc 端可以使用分页进行渲染数限制,在移动端可以使用下拉加载更多。但是对于大量的列表渲染,特别像有实时数据...
本小节开始前,我们先答复下一个同学的问题。上一小节发布后,有小伙伴后台来信问到:‘小编你只讲了类组件中怎么使用 ref,那在函数式组件中怎么使用呢?’。确实我们...
上一小节我们了解了固定高度的滚动列表实现,因为是固定高度所以容器总高度和每个元素的 size、offset 很容易得到,这种场景也适合我们常见的大部分场景,例如...
上一小节我们处理了 setState 的批量更新机制,但是我们有两个遗漏点,一个是源码中的 setState 可以传入函数,同时 setState 可以传入第二...
我们知道 react 进行页面渲染或者刷新的时候,会从根节点到子节点全部执行一遍,即使子组件中没有状态的改变,也会执行。这就造成了性能不必要的浪费。之前我们了解...
在平时工作中的某些场景下,你可能想在整个组件树中传递数据,但却不想手动地通过 props 属性在每一层传递属性,contextAPI 应用而生。
楼主最近入职新单位了,恰好新单位使用的技术栈是 react,因为之前一直进行的是 vue2/vue3 和小程序开发,对于这些技术栈实现机制也有一些了解,最少面试...
我们上一节了了解了函数式组件和类组件的处理方式,本质就是处理基于 babel 处理后的 type 类型,最后还是要处理虚拟 dom。本小节我们学习下组件的更新机...
前面几节我们学习了解了 react 的渲染机制和生命周期,本节我们正式进入基本面试必考的核心地带 -- diff 算法,了解如何优化和复用 dom 操作的,还有...
我们在之前已经学习过 react 生命周期,但是在 16 版本中 will 类的生命周期进行了废除,虽然依然可以用,但是需要加上 UNSAFE 开头,表示是不安...
上一小节我们学习了 react 中类组件的优化方式,对于 hooks 为主流的函数式编程,react 也提供了优化方式 memo 方法,本小节我们来了解下它的用...
开源不易,感谢你的支持,❤ star me if you like concent ^_^
hel-micro,模块联邦sdk化,免构建、热更新、工具链无关的微模块方案 ,欢迎关注与了解
本文主题围绕concent的setup和react的五把钩子来展开,既然提到了setup就离不开composition api这个关键词,准确的说setup是由...
ReactsetState的执行是异步还是同步官方文档是这么说的setState()doesnotalwaysimmediatelyupdatethecomponent.Itmaybatchordefertheupdateuntillater.Thismakesreadingthis.staterightaftercallingsetState()apotentialpitfall.Instead,usecom