React Native

Hire the Top 3% of 自由React原生开发者

Toptal是一个面向顶级React Native开发者的市场, engineers, programmers, coders, architects, and consultants. 顶级公司和初创公司可以聘请Toptal专职(全职), hourly, 或者兼职React Native自由职业者,他们的关键任务软件项目.

无风险试用,满意才付款.

Clients Rate React原生开发者总数4.5 / 5.0截至2024年1月20日,平均有756条评论

雇佣自由的React Native开发者和工程师

Marcus Hsu

React本地自由开发者

United StatesToptal Member Since May 19, 2020

Marcus在前端开发方面有超过十年的经验, 在过去的几年里,我一直在用React Native构建React网站,开发iOS和Android应用. 他已经帮助至少31家企业和初创客户使用React设计和构建了高质量的跨平台应用程序, React Native, and Node.js. Marcus还开发了企业级应用,影响了140个国家的3000多万用户.

Show More

Donnie Waters

React本地自由开发者

United StatesToptal Member Since April 25, 2022

Donnie是一位值得信赖的前端工程师,他热衷于学习新事物,同时提供高效的产品. 他有超过六年的软件工程师工作经验,专注于前端的React Native. 唐尼还兼职开发了自己的手机应用,下载量超过两百万.

Show More

Haleeq Usman

React本地自由开发者

United StatesToptal Member Since July 26, 2022

Haleeq是计算机科学领域的领导者,在领导政府机构(如纽约市立大学研究基金会)的工程团队方面拥有多年的经验, 顶尖科技私营公司, 像Adobe这样的公司. 他精通形式语言理论, 使他能够有效地发布程序, apps, 以及任何编程语言的服务. Haleeq拥有多年的企业应用架构和构建经验, services, 设计模式.

Show More

JT McHorse

React本地自由开发者

United StatesToptal Member Since May 18, 2022

James是一名高技能的软件开发人员,拥有10多年从无到有构建初创企业到完全建立企业存储库的专业经验. 精通不同技术, 编程语言, and frameworks, 他最近的工作重点是React和React Native, 他如何在紧迫的期限内完成多个项目. James愿意利用他的经验来帮助客户构建最好的解决方案.

Show More

Mike Shevlyakov

React本地自由开发者

CanadaToptal Member Since April 24, 2023

作为高级React Native开发人员,拥有5年的生产经验, Mike曾与乌克兰领先的IT公司合作, 包括EPAM和SoftServe. 他的专业知识延伸到初创公司和大型产品开发计划. 精通团队合作和独立工作, 他喜欢自由职业,探索不同的项目和旅行机会,并愿意接受兼职工作. Mike致力于为他的客户提供最高质量的结果.

Show More

Arpit Agrawal

React本地自由开发者

IndiaToptal Member Since February 8, 2019

Arpit是一个面向产品的全栈web开发者,主要使用Angular和React Native. 他的专长是为初创公司和中型公司打造mvp, 可伸缩microservices, serverless基础设施, web crawlers, 通知应用程序, REST/Socket APIs, 基础设施建模, 复杂的算法, AWS, and deployments. Arpit可以单枪匹马地完成项目,是将想法转化为原型的完美人选.

Show More

Tomislav Krnic

React本地自由开发者

BelgiumToptal Member Since October 12, 2012

Tomislav是一名拥有20多年经验的全栈开发人员和设计师. 他最近专注于React Native移动开发和实时数据库. 他创立或联合创办了六家企业,其中三家成功退出. 他以建立完整解决方案并取得切实成果的良好记录而自豪.

Show More

Aäron De Pauw

React本地自由开发者

BelgiumToptal Member Since November 10, 2022

Aäron是一个拥有10年以上JavaScript和PHP使用经验的全栈开发和设计人员. 他对前端开发充满热情,专门研究React和React Native. 从快速原型到广泛而复杂的体验, 他详细分析项目, 认真倾听客户需求, 并提供一个成品与最好的堆栈. Aäron喜欢自由职业,总是把项目带到下一个层次.

Show More

Scotty Waggoner

React本地自由开发者

United StatesToptal Member Since 2021年2月17日

斯科蒂喜欢解决复杂的问题, 研究新事物, 实现惊人的用户体验. 他精通React, React Native, GraphQL, Next.js, Node.js, 和TypeScript,并且非常关心编写高质量的代码, 使用现代开发工具, 改善开发人员体验, 优化应用程序架构. Scotty喜欢创建结合了优秀UX的面向用户的应用程序, 智能系统, 和复杂的数据来解决有意义的现实问题.

Show More

Vivek Rathod

React本地自由开发者

AustraliaToptal Member Since January 28, 2022

Vivek是一位经验丰富的软件工程师,在信息技术和服务行业工作. 熟练掌握React, React Native, Flutter, Vue.js, Node.js, Express.js, PHP, Laravel, and Java, 他渴望从事混合web/应用程序开发,喜欢成为团队的一员或领导团队. Vivek相信不断学习和实施最好的解决方案.

Show More

Eliran Goshen

React本地自由开发者

IsraelToptal Member Since October 20, 2016

从业余爱好开始,Eliran在过去的几年里一直在专业地开发Android应用程序. 他参与过各种各样的项目——有些是从零开始的, 有些人在后期加入, some alone, 其他人作为团队的一员. 他很友好,善于沟通,而且积极性很高. Eliran也是一个挑战爱好者, 分析型思考者, 并且要有扎实的学术背景,拥有计算机科学学士学位.

Show More

现在注册以查看更多资料.

Start Hiring
经常成对

获得额外的专业知识

我们的客户经常将这些额外的服务与我们的自由React Native开发人员配对.

A Hiring Guide

雇佣优秀的React原生开发者指南

React Native开发者需要一套特殊的技能来提高效率. 在不知道正确的主题的情况下,确定开发人员候选人是否适合您的项目可能是一项挑战.

Read Hiring Guide

React Native招聘资源

更多资源来雇佣React原生开发者

工作描述模板面试问题Jobs
Trustpilot
总体优势

在无风险试用后,98%的Toptal客户选择雇用我们的人才.

Toptal的筛选和匹配过程确保卓越的人才与您的精确需求相匹配.

Start Hiring
报纸上铺天盖地

... 允许公司快速组建具有特定项目所需技能的团队.

尽管对程序员的需求在不断增加,但Toptal对自己近乎常春藤联盟级别的审查感到自豪.

Our clients
为游戏制作应用程序
Conor Kenney
为游戏制作应用程序
构建一个跨平台的应用程序,在全球范围内使用
Thierry Jakicevic
构建一个跨平台的应用程序,在全球范围内使用
引领数字化转型
Elmar Platzer
引领数字化转型
挖掘实时数据将改变行业的游戏规则
挖掘实时数据将改变行业的游戏规则
Testimonials

没有Toptal就不会有Tripcents. Toptal Projects使我们能够与产品经理一起快速发展我们的基金会, lead developer, 高级设计师. 在60多天的时间里,我们从概念到Alpha. 其速度、知识、专业知识和灵活性是首屈一指的. Toptal团队是tripcents的一部分,就像tripcents的任何内部团队成员一样. 他们像其他人一样贡献并拥有开发的所有权. 我们将继续使用Toptal. 作为一家初创公司,它们是我们的秘密武器.

布兰特利·佩斯,首席执行官 & Co-Founder

Tripcents

我对我们与Toptal的合作经验非常满意. 和我一起工作的专业人员在几个小时内就和我通了电话. 在和他讨论了我的项目后,我知道他就是我想要的候选人. 我立即雇用了他,他没有浪费时间就完成了我的项目, 甚至通过添加一些很棒的设计元素来增加我们的整体外观.

保罗·芬利,局长

K Dunn & Associates

与我合作的开发者都非常出色——聪明、有动力、反应灵敏. 过去很难找到高质量的工程师和顾问. Now it isn't.

瑞安·洛克菲勒首席执行官

Radeeus

Toptal立即理解了我们的项目需求. 我们遇到了一位来自阿根廷的杰出自由职业者, from Day 1, 沉浸在我们的行业中, 与我们的团队无缝融合, 理解我们的愿景, 并产生了一流的结果. Toptal使与高级开发人员和程序员的联系变得非常容易.

Jason Kulik,联合创始人

ProHatch

作为一家资源有限的小公司,我们不能犯代价高昂的错误. Toptal为我们提供了一位经验丰富的程序员,他能够立即投入工作并开始做出贡献. 这是一次很棒的经历,我们会马上再来一次.

斯图尔特·波克尼校长

现场专用软件解决方案

我们使用Toptal聘请了一位具有丰富的Amazon Web Services经验的开发人员. 我们面试了四位候选人,其中一位非常符合我们的要求. 这个过程迅速而有效.

Abner Guzmán Rivera,首席技术官和首席科学家

Photo Kharma

Sergio是一个很棒的开发者. 一流,反应迅速,工作效率高.

Dennis Baldwin,首席技术专家和联合创始人

PriceBlink

和Marcin一起工作是一种乐趣. He is competent, professional, flexible, 并且非常迅速地理解需要什么以及如何实现它.

安德鲁·费舍尔,首席技术官

POSTIFY

我们需要一位能立即开始我们项目的专业工程师. 西马纳斯的工作超出了我们的预期. 不需要采访和追踪专家开发人员是一种非常节省时间的方法,并且让每个人都对我们选择切换平台以使用更健壮的语言感到更舒服. Toptal使这一过程变得简单方便. Toptal现在是我们寻求专家级帮助的首选之地.

Derek Minor, Web开发高级副总裁

网络传媒集团

Toptal的开发人员和架构师都非常专业,也很容易共事. 他们提供的解决方案价格合理,质量上乘,缩短了我们的发行时间. 再次感谢,Toptal.

首席执行官杰里米·韦塞尔斯

Kognosi

我们与Toptal合作非常愉快. 他们为我们的应用程序找到了完美的开发人员,让整个过程变得非常简单. 它也很容易超出最初的时间框架, 我们可以在整个项目中保持同一个承包商. 我们强烈推荐Toptal,因为它可以快速无缝地找到高素质的人才.

Ryan Morrissey,首席技术官

应用商业技术有限责任公司

我对Toptal印象深刻. 我们的开发人员每天都和我交流,他是一个非常强大的程序员. 他是一个真正的专业人士,他的工作非常出色. Toptal 5星.

首席执行官彼得罗·卡索

浪人娱乐有限公司

与Toptal合作是一次很棒的经历. 在使用它们之前, 我花了相当多的时间面试其他自由职业者,但没有找到我需要的. 在与Toptal合作后,他们在几天内就为我找到了合适的开发者. 与我一起工作的开发人员不仅提供高质量的代码, 但他也提出了一些我没有想到的建议. 我很清楚,阿莫里知道自己在做什么. 强烈推荐!

George Cheng, CEO

Bulavard, Inc.

作为一名Toptal合格的前端开发人员,我还经营着自己的咨询业务. 当客户来找我帮忙填补他们团队中的关键角色时, Toptal是我唯一愿意推荐的地方. Toptal的所有候选人都是精英中的精英. Toptal是我在近5年的专业在线工作中发现的性价比最高的网站.

Ethan Brooks, CTO

Langlotz Patent & 商标工程公司.

在希格尔的早期, 我们需要一流的开发者, 以可承受的价格, 及时地. Toptal delivered!

Lara Aldag, CEO

Higgle

Toptal能让你轻松找到合适的人选,让你放心,因为他们有能力. 我肯定会向任何寻找高技能开发人员的人推荐他们的服务.

Michael Gluckman,数据经理

Mxit

Toptal将我们的项目与最优秀的开发人员快速匹配的能力非常出色. 开发人员已经成为我们团队的一部分, 我对他们每个人所表现出的敬业精神感到惊讶. 对于那些希望与最好的工程师远程工作的人来说,没有比Toptal更好的了.

劳伦特·阿里,创始人

Livepress

Toptal让寻找合格的工程师变得轻而易举. 我们需要一个有经验的ASP.. NET MVC架构来指导我们的启动应用程序的开发, Toptal在不到一周的时间里为我们找到了三位优秀的候选人. 在做出我们的选择后,工程师立即在线并开始工作. 这比我们自己发现和审查候选人要快得多,也容易得多.

Jeff Kelly,联合创始人

协同解决方案

我们需要一些Scala的短期工作,Toptal在24小时内为我们找到了一位优秀的开发人员. 这在其他平台上是不可能实现的.

Franco Arda,联合创始人

WhatAdsWork.com

Toptal为快速发展和规模化的企业提供不妥协的解决方案. 我们通过Toptal签约的每一位工程师都迅速融入了我们的团队,并在保持惊人的开发速度的同时,将他们的工作保持在最高的质量标准.

Greg Kimball,联合创始人

nifti.com

如何通过Toptal雇佣React原生开发者

1

与我们的行业专家交谈

Toptal的工程总监将与您一起了解您的目标, technical needs, and team dynamics.
2

与精心挑选的人才一起工作

几天之内,我们将为您的项目介绍合适的React Native专家. 平均匹配时间在24小时以下.
3

绝对合适

与你的新React Native开发人员一起试用一段时间(如果满意才付费), 在订婚前确保他们是合适的人选.

寻找拥有相关技能的专家

在我们的人才网络中访问大量熟练的开发人员,并在48小时内雇用最优秀的3%.

FAQs

  • Toptal React Native专家有何不同?

    At Toptal, 我们彻底筛选我们的React Native专家,以确保我们只匹配您与最高水准的人才. 在200多个中,每年有5000人申请加入Toptal网络, 只有不到3%的人能达标. 你将与工程专家(而不是一般的招聘人员或人力资源代表)一起了解你的目标, technical needs, and team dynamics. 最终的结果是:经过专家审查的人才从我们的网络,定制匹配,以满足您的业务需求.

  • 我可以在48小时内通过Toptal雇佣React Native开发人员吗?

    取决于可用性和进度, 你可以在注册后48小时内开始与React Native开发人员合作.

  • total React Native开发者的无风险试用期是多长?

    我们确保您和React Native开发人员之间的每一次约定都从长达两周的试用期开始. 这意味着你有时间确认订婚是否成功. 如果你对结果完全满意, 我们会给你开时间单的,你愿意多久我们就多久. 如果您不完全满意,我们不会向您收费. From there, 我们要么分道扬镳, 或者我们可以为您提供另一位可能更合适的专家,我们将与他开始第二轮谈判, no-risk trial.

Share
React Native

如何聘请优秀的React原生开发者

React Native是一个用于在iOS、Android和UWP上渲染移动应用程序的库. 使用React Native, 在大多数情况下,编写一次代码并将其部署到所有可用的目标平台是可能的——这可能是您希望聘请专门的React Native专家的原因.

React Native与React共享许多概念和库, 所以对于任何React Native工作来说,开发者至少要熟悉web上的React及其常用模式,这一点很重要. 我们还建议React Native程序员精通JavaScript,尤其是ES6语法.

我们的许多问题 React招聘指南 在为React Native招聘应用开发者时也同样适用, 所以在面试的时候最好把这两个指南都记在心里. Of course, the JavaScript招聘指南 也适用于:正如指南中提到的, 对JavaScript框架有一些了解和成为JavaScript专家之间有很大的区别, 在从事React和React Native工作时,成为JavaScript专家是至关重要的.

回答地道的面试问题

让我们深入了解一些React Native面试问题来帮助你评估你的候选人.

什么是React Native组件?

组件是React Native应用程序的构建块. React Native提供了一组组件,这些组件映射到React Native专家可以使用的每个平台上相应的本地组件.

有些组件可以在所有平台上使用(例如 View, Button, and FlatList),而其他则是特定于平台的, 因为它们映射到只存在于iOS或Android上的本地组件, iOS没有硬件返回按钮, so a BackHandler 组件在iOS应用中是没有意义的.

控件创建自己的组件 React.Component 类,并实现 Render method:

导出默认类App扩展React.Component {
  render() {
    return (
      //组件的可视树
    );
  }
}

在性能方面,在列表中显示项目的最佳方式是什么?

React Native提供了 VirtualizedList 提供开箱即用的虚拟化的组件. While VirtualizedList 可以直接使用,越高级越好 FlatList (在可滚动列表中显示项目)和 SectionList (same as FlatList 但是使用分组和自定义部分)实现适合大多数用例.

在使用时,需要记住一些重要的事情 VirtualizedList, however.

不能保证在滚动列表时保持列表中项的内部状态:基于元素的数量和滚动的级别, 列表可能会在视窗之外处理一些元素. 这些元素将基于从头开始重新创建 props 当返回viewport时. 因此,开发人员需要确保项目可以基于 props alone.

项目应注明 Key 属性,该属性唯一标识它们. 另外,也可以提供自定义 KeyExtractor 在该列表的定义中:


这是一个很好的做法,以确保列表项不会重新渲染,如果传递相同的道具,他们已经有. 这可以通过实现来实现 shouldComponentUpdate 的组件中,或者从 React.PureComponent 类的实现 shouldComponentUpdate that does shallow prop and state comparison.

如何在React Native中为组件设计样式?

样式是由纯JavaScript对象指定的,所有React Native组件都接受 Style 属性,该属性可以用指定样式的对象设置.

注意,虽然语法类似于CSS, it’s not CSS, React Native应用的组件样式也不遵循相同的约定. 值得注意的是,所有属性都遵循驼峰大小写约定,而不是破折号大小写(background-color becomes backgroundColor)和布局只能使用flexx算法指定.

因为样式定义是在代码中完成的, 它很容易参数化样式,并做一些通常CSS预处理器/扩展(少, Sass)用于:

import {StyleSheet} from 'react-native';
导入{primaryColor, secondaryColor}./style/consts'; // values defined in another .js file

let width = 50;

///...

const style = StyleSheet.create({
  “颜色”:primaryColor,
  “写成backgroundColor”:secondaryColor,
  'width': width
});

如何调试React Native应用程序?

在模拟器中运行React Native应用程序时, 可以通过“摇动”设备(在模拟器中选择“摇动”手势)或按Command-D (iOS)或Control/Command-M (Android)来访问开发人员菜单。. 开发人员菜单将显示“启用JS调试”菜单项,以及其他内容. 单击它后,可以浏览到 http://localhost:8081/debugger-ui 使用Chrome/Chromium,显示调试器.

通过运行可以看到日志跟踪 react-native log-android for Android, and react-native log-ios 对于iOS,当模拟器启动时.

If using Redux, Reactotron 看到所有API调用和动作调度特别有用吗.

我们现有的代码库在Xamarin中,你将帮助将其移植到React Native. 需要关注哪些问题?

不像我们其他的React Native面试问题,这可能并不适用于每个项目. 但如果确实如此,这当然是一个值得考虑的重要问题.

React Native and Xamarin.Forms 采用相同的方法制作跨平台应用程序:都采用UI定义(虚拟DOM或XAML)并将其转换为本机代码.

两者之间有两个主要区别:

  • 选择的语言:xamarin几乎总是使用c#——尽管也可能使用其他语言 .. NET框架和用于React Native的JavaScript.
  • 它们可用的开发平台:React Native可用于Linux, MacOS, and Windows, 而Xamarin仅在Windows和MacOS上正式可用.

而React Native和Xamarin.表单在概念上做同样的事情,它们使用的抽象并不直接兼容. For example, React Native上可用的组件不一定在Xamarin上可用, and vice versa. 同样,相同的抽象通常在两个框架中以不同的方式实现 FlatList and SectionList 在React Native上,这映射到他们在iOS和Android上的相应概念,以及 ListView on Xamarin.表单,它将两者合并为一个UI组件.

如果React Native开发者要处理Xamarin的移植.Forms, 对他们来说,至少有一些c#的经验是非常有益的, 最好有使用沙玛林的经验.

React和React Native之间的关系是什么?

React是一个JavaScript库,允许开发人员以声明式的方式定义用户界面. 在国家处理方面,它提供了一些基础设施(props 对于单向数据流,从外部注入; state 对于双向数据流(内部管理状态)和通用组件生命周期方法钩子.

React在内存中保留了UI的内部表示(虚拟DOM)。. 它使用这种表示来计算组件在道具/状态变化时的视觉外观变化, 以便能够在数据更改时部分更新UI——从而避免完全重绘的需要.

React Native位于React和之上, React会在哪里将虚拟DOM渲染为HTML文档, React Native将虚拟DOM映射到原生iOS/原生Android组件. So, 而React通常与JSX一起使用,以生成HTML输出, React Native有自己的一组标记,用来表示本地组件的抽象. 这些本地组件最终会显示在设备上.

所以,如果一个React组件看起来像这样:

类ReactJSComponent扩展React.Component {
  render() {
    return(
    

Hello world!

); } }

那么一个等效的React Native组件可能是这样的:

类reactativecomponent扩展React.组件{//注意,这是我们要扩展的同一个类
  render() {
    return(
    
      Hello world!
    
    );
  }
}

通常用于处理状态的库(Redux), MobX)和大多数不依赖于UI的插件在React和React Native中的使用方式完全相同, 大多数适用于React的模式/最佳实践也适用于React Native.

强调原生开发和使用React native的移动开发之间的主要区别和权衡.

React Native在以下方面有明显的优势 移动应用开发:

  • React Native允许跨平台开发:只编写一次应用程序逻辑, 使用相同的语言(JavaScript),并且可以部署到可用的目标平台(iOS, Android, and UWP). 为特定平台编写原生应用程序需要在将应用程序移植到不同平台时进行几乎完全的重写.
  • React Native应用程序是用JavaScript编写的,有一些限制(见下文). 这可以是加号,也可以是减号,取决于具体情况, but generally, 寻找具有JavaScript经验的开发人员并不像寻找其他语言开发人员那样困难.
  • 热重新加载是一个很棒的React Native特性, 允许开发人员更改应用程序代码并直接在模拟器中查看这些更改, 不需要重新编译/重新部署.

React Native是一个不错的选择, 特别是考虑到不断增加的用户基础和对它的不断改进. 但也有一些缺点需要考虑:

  • 虽然在过去的两年里,业绩一直在稳步提高, React Native仍然比视觉效果相当的原生应用慢得多, 特别是当应用程序大量使用动画或具有复杂的UI时.
  • 有些原生功能不能直接从React native中使用, 并且可能有必要为每个目标平台编写模块, 使用目标平台的语言.
  • JavaScript是一种主流语言,因此被广泛了解和使用, 但它也有一些严重的缺点. 编写和维护一个扩展到一定规模的JavaScript应用程序可能是一项挑战.

React Native在不同平台上的表现如何?

React Native采用虚拟DOM,由React根据接口定义i生成.e. 方法得到的结果 render 方法在应用程序的组件上. 然后使用它为每个目标平台生成本机代码.

That means that, for the most part, 开发人员不必担心平台特定的细节,可以依靠React Native根据情况输出正确的本地代码. 例如,如果开发人员添加 Text 组件,它将被转换为 UITextField 在iOS上,变成 TextView on Android. 布局定义也是如此:React Native使用flexbox, 在部署应用程序时,这将被转换为特定于目标平台的适当布局定义.

有时,React Native提供的抽象只在某些目标平台上可用(前面提到的例子就是一个例子) BackHandler). 在这种情况下,开发人员应该正确地利用抽象. 可能需要对当前平台进行检查:

从'react-native'中导入{Platform};

if (Platform.OS == 'ios') {
  // ios特有的代码
}

在某些情况下,React Native并没有为本地组件或功能提供抽象层. 在这种情况下,开发人员将不得不用目标平台的语言编写本地模块. 这是通过扩展 ReactContextBaseJavaModule Android应用程序,并通过实现 RCTBridgeModule in iOS.

有了这些模块, 可以使用模块本身显式提供的端点从React Native与它们交互. 我们简单地用 @ReactMethod 导出类和方法 RCT_EXPORT_MODULE and RCT_EXPORT_METHOD on iOS:

公共类MyModule扩展ReactContextBaseJavaModule

  @ReactMethod
  公共无效myMethod() {
    // implementation
  }

}
@ implementation MyModule里

RCT_EXPORT_MODULE ();

RCT_EXPORT_METHOD (myMethod)
{
   // implementation
}
从“react-native”中导入{native模块};
//这样调用它:
NativeModules.MyModule.myMethod();

在React Native中处理状态有哪些不同的选择?

事实上,React(以及React Native)不强制任何类型的全局状态管理. 开发人员可以使用的唯一模式是将状态注入到组件中 props,而内部组件状态则通过 state property.

当涉及到全局状态管理时,有几个选项可用, 更广泛使用的是Redux. 如果开发人员熟悉React上的Redux, 在React Native上使用它是没有变化的. 行为是完全相同的,因为是常见的使用模式.

管理全局状态的另一个可用选项是MobX, 哪个使用可观察对象和绑定处理状态, the way Knockout.js and WPF do. 而Redux遵循函数式编程范式,并且适合这种编程风格, 因此,对于那些具有面向对象背景的人来说,mobx更容易上手.

两个选项都是有效的, 在选择其中一个之前,考虑团队的组成是很重要的. Redux通常是具有函数式编程背景的人的首选, 但要跟上速度是很有挑战性的. MobX提供了更平坦的学习曲线, 但是,当应用程序增长到一定规模时,可能会出现问题.

What is a Thunk?

一般来说,Thunk是由另一个函数返回的函数. 它用于将计算结果推迟到实际需要结果的时候:

函数doMyThing() {
  返回函数(){
    返回"my result";
  }
}

这个概念对React(和React Native)开发人员来说很重要,因为它们被用于Redux最流行的中间件之一:Redux -thunk. 它允许React操作,通常只是普通的JavaScript对象,像这样:

{
  类型:“MY_ACTION_TYPE”,
  value: "myvalue"
}

来直接调度其他动作,像这样:

函数myActionCreator() {
  返回函数(调度,状态){
    调度(anotherActionCreator ());
  }
}

Redux还有其他的中间件没有直接暴露这个概念——最著名的是React saga——但是非常重要的是,你的React Native开发人员候选人熟悉上面的函数式编程概念.

什么是中间件? 它在Redux中是如何使用的?

Redux中间件是开发人员提供给Redux的功能(从外部模块导入), (或直接开发),在到达减少器之前拦截所有已分派的动作, 可能对这些操作执行一些操作, 然后将它们转发给减速机.

因此,中间件提供了一个钩子,可用于在动作到达reducer之前对其运行自定义操作. 这一点很重要,因为许多库和扩展(例如.g.(前面提到的redux-thunk)将自己注册为中间件. 一个中间件返回一个Thunk,因为它是一个返回函数的函数.

一个中间件实现示例如下:

//什么都不做的中间件
const myMiddleware = store => next => action => {
  返回下一个(行动);
}

Here, store 应用程序的存储是否可以从中间件函数内部获得. That means that store.dispatch 是否可以从中间件内部获得, 这样就可以为每个接收到的操作分派多个操作——小心无限循环! Then next 是一个函数,返回一个函数(这将调度动作),并期望一个动作作为参数.

上述中间件可以通过以下方式注册:

const store = createStore()
  myCombinedReducers,
  applyMiddleware (myMiddleware otherMiddleware)
)

衡量你的React原生应用开发候选人

这些问题的答案应该能让你了解一个移动应用开发候选人在多大程度上适应React Native.

This hiring guide, of course, 不是为了报道一次详尽的采访吗, 但作为聘请全职或兼职专家的指导方针——React Native开发和应用开发都有更多的内容. For example, 一个对JavaScript和React都非常有经验的专业开发人员应该能够很快地掌握React Native及其概念.

At the same time, 有一点React原生开发经验但没有JavaScript或原生开发经验的人可能知道上面问题的答案, 但作为一个React Native应用开发者却不是很有效. 你的里程可能会有所不同,就像生活中的其他事情一样. Good luck!

顶尖的React原生开发者需求量很大.

Start Hiring