7大技巧!用React Native实现编程效率最大化

新闻 前端
当今针对ReactResearch的研究和文章,多围绕性能、扩充性以及与同类软件的对比情况展开论述。本文将介绍7个能将React Native编程效率最大化的窍门

React Native是一款很强大的技术工具,用它能开发出有美感、原生态的跨平台应用程序。当下,React Native的应用率持续上升,尤其受入门级用户的青睐。

当今针对ReactResearch的研究和文章,多围绕性能、扩充性以及与同类软件的对比情况展开论述。本文将介绍7个能将React Native编程效率最大化的窍门:

入手一台Mac

假如你真的习惯了微软系统,又认为使用熟练使用的操作系统会更好(我起初也是这么想的),但是个人经验表明,有一条规则程序员不得不信——那就是,MacOS(苹果电脑操作系统)无疑是React Native开发领域里的最合适的系统配置。

主要原因有两点:

1. 很明显,MacOS能为用户构建iOS客户端应用提供便利。React Native的所有使用教程都默认用户持有Mac绝非巧合。所以想做跨平台开发,早晚都需要一台Mac。

2. React Native在iOS系统上性能更优,运行更稳定。React Native本来就是从iOS软件“发家”的。不论是模拟器、构建过程、实时加载/热加载功能还是远程JS故障排除功能,都能在MacOS上完美运行。在微软系统上,npm和React Native本身,甚至是微软的命令行都漏洞百出。

在Mac端开发React Native至少比在其他系统上的快两倍。所以,想赢在起跑线上,就要确保是(或即将成为)macOS用户。

入手更高配置的Mac

React Native是那种能够充分利用资源,并从中获益的技术软件。它的工作流可以让至多三四个不同的iOS/安卓仿真器同时运行。

配置越高,性能越好——能够实时观测用户的应用程序是否在所有目标平台上正常运行,不仅贴心,还为开发者节省了大量时间。不用再担心“解决一个平台上的问题,却给其他平台引入新的漏洞”的意外发生。

另外,IDE上的每一次CTRL+ S 保存操作都会重建体系,这将最小化构建应用和编码验收之间的等待的时间,让一天之内重复成百上千次的工序耗时大大减少,时间因此得到有效利用。

还有,没有比即刻看到程序的实施效果更令人满意的事了。

从老版Mac mini到2018年新版MacBook,工作效率提高了约50%。所以,尽量购买最高配置的Mac。

让IDE成为帮手

每一个IDE都自带某种格式特征,或许有人会觉得这就足够了。但当今的IDE已经变得更为智能,让格式特征成为其冰山一角。

缩进代码、清除变量、整理输入、转换引用等其他操作能使用户的程序变得整齐划一——这些操作都可以用IDE实现,且应该用IDE实现!直到记不起最近一次按下tab键是什么时候。

7大技巧!用React Native实现编程效率最大化

Echobind网站上有一篇关于“如何把Prettier+Eslint+airbnb规则合并成VS代码”的优质文章。

传送门:https://blog.echobind.com/integrating-prettier-eslint-airbnb-style-guide-in-vscode-47f07b5d7d6a

这篇文章的建议会缩短用户开发耗时,提高成果满意度。

把所有程序都编成代码段

尽量遵循DRY原则。编程的时候,你是否总是手动输入<View></View>或者<Text></Text>?不如把它们转化为代码段!

不要就此止步——也许你还想应用刚设计出来的一种全新风格的视图,为何不动手尝试呢?

7大技巧!用React Native实现编程效率最大化

以上步骤可以看作对编写的代码“应用压缩算法”。识别出重复的操作,并用“标识符”(代码段)代替。归纳用户的编程习惯,根据个人习惯生成用户自己的项目索引。

7大技巧!用React Native实现编程效率最大化

别让IDE妨碍编程。学习如何简便高效地使用IDE,就不会浪费以上步骤节省下来的时间。

另外,编写三字节程序和列表生成是成为编程大神的必备技能。

窗口加倍,速度加倍?

倒不一定……但开启双窗口多少有用。

总是在两个文件之间来回操作的用户,一定要养成拆分窗口的习惯。

7大技巧!用React Native实现编程效率最大化

也许两个窗口刚开始会显得有些力不从心,但是,拆分窗口,特别是在重要编程环节中拆分窗口,是提高编程效率的基础和核心。

熟悉快捷键和习惯使用快捷键还差很远。因此,需要找到并组合适合自己的IDE命令。

对本文作者来说,恰好满足了个人(VS码编写)需求的命令是:

workbench.action.focusSecondEditorGroup

它解决了打开新标签页带来的麻烦,用单个按键组合(CTRL+ 2),既移动了文件夹,也让标签页更集中。

比如说,创建UI(用户界面)的同时在屏幕上显示标记和样式,既省时又省力。

合理使用热加载

谈到代码更改预览,React Native的热加载技术就是最“顶尖”的运行内容之一。

但以上论断的前提是用户会使用热加载功能。目前,ReactNative反馈条目中有超过130项热门评价是关于热加载问题的,充分证据表明,热加载十分脆弱。

热加载崩溃的原因常常难以侦测,但我注意到大多时候,热加载崩溃的根源,不在代码自身的“毛病”,而在于代码不能和热加载兼容。

举个例子,经过几个小时的故障排除,将以下代码格式:

  1. componentDidMount = async() => {} 

更改为

  1. async componentDidMount() {} 

能让热加载重新运转起来。

当然,热加载不运行不一定是箭头函数的问题;不同的编码基数存在不同的问题。但让热加载持续运行的技巧在于,密切关注是哪一类代码导致它出现故障,并重构错误代码。最常用的重构方法就是简化代码形式。

用户需要耗费必要的时间让热加载重新运转。热加载能帮助用户更快地构建UI,并且,我将在下文具体说明,热加载也是排除UI和商业逻辑故障的重要工具。

巧妙利用热加载

从Web过渡到React Native时,系统布局是为用户诟病的主要问题——其原因多在于,React Native的界面缺乏合理(或者是说有用)的“检验”UI,不能使用户从视觉上检验各要素的尺寸、形态和边界。

热加载除了提供更快、更高效的开发流程之外,还是一种实用的要素检验工具。

它的检验效果如下。

7大技巧!用React Native实现编程效率最大化

将热加载和快捷代码段组合之后,能在一秒钟内满足用户的所有需求,且不需重建IDE。

做一个可以生成红色边框的bred代码段,就能够将其运用于任何要素。按下CMD+ S就能通过屏幕看到弹出的要素。用户还可以根据个人喜好,调整或增强要素风格。这看起来简单又局限的操作,实际上能节省10%的操作时间。

使用这种方法之后,再也不需要打开检测弹窗和菜单,不用担心它们会打断你的工作流,从此实现随时随地清除故障。

使用热加载的又一实用窍门是,用户能够在现有的开发框架上检测所有的变量数值。比如这个例子:

7大技巧!用React Native实现编程效率最大化

几周前,本文作者做成了这个“玩家数据”界面,这里本应显示玩家的数据,但由于某一个代码自上周起就出了问题,于是需要找出问题在哪里。

代码如下:

  1. <View> 
  2.  {stats.map(stat => 
  3.  <Stat {...stat} /> 
  4.  )} 
  5. </View> 
  6. ... 
  7. export const Stat= ({ value = '-', name }) => ... 
  8. import seaborn as sb 

在截屏中,数据栏的数值总是“-”。这意味着stat变量的结构不太对,需要检查。

在React Native里,一种故障检测的方法是启动远程故障排查功能,去掉Chrome界面的标签页(否则RN就会影响那些后台标签页),打开dev工具,打开当前文件夹,在render功能前的return那里设置一个断点,重新加载应用,把应用导航至前面的断点界面,祈祷不要有源映射错误,然后再检查接收数据。

如果先载入stats变量,进行屏幕导航,再检查载入数据会更简便一些。

热加载技术可以将故障排除推进一步:

  1. <View> 
  2.  {stats.map(stat => 
  3.  <Stat 
  4. dog={console.log(stat)} {...stat} /> 
  5.  )} 
  6. </View> 

基于render方程的本质,每次调用它时,每一个要素属性都会被评估,并以组件的形式返回。

然而,在本文的讨论的中,“以评估组件的形式返回”这一部分不是很重要,只需要关注“被评估”这一部分。

对纯随机、非显性的属性调用console.log(stat)命令(这里具体指代“dog”——我觉得有用的热点序列),然后保存以启动热加载,它就会评估整个render方程,其中包括dog属性。

7大技巧!用React Native实现编程效率最大化

最后得出如上数据,无需重启,无需检测程序,更不需要连接远程故障排查;这种方法就能立即反馈需求数据。

当然,也不难发现,其实需要展开的是stat.content而不是stat,因为数据嵌套在content之下。

在任何时候,使用热加载都能帮助用户极速解决编程故障!

 

责任编辑:张燕妮 来源: 今日头条
相关推荐

2011-07-20 13:23:48

SaaS云计算

2009-06-11 16:50:53

DCM数据中心虚拟化

2009-06-09 20:55:48

数据中心绿色IT虚拟化

2017-03-13 14:32:10

机器学习学习效率AI

2024-09-19 10:44:16

2017-10-18 11:14:02

容器虚拟机云平台

2020-04-22 14:03:30

云服务云计算企业

2023-08-10 07:00:06

虚拟代理客户人工智能

2009-01-05 19:07:03

服务器虚拟化虚拟机

2009-07-21 08:29:05

Windows 7系统AeroSnapWindows 7系统

2016-04-12 10:02:22

2011-11-15 09:45:43

云计算云应用

2013-05-08 10:03:52

创业设计设计思想设计

2022-11-08 15:05:08

AI人工智能

2012-09-13 09:37:26

多核处理器AMD云计算

2014-04-25 11:02:25

虚拟化虚拟化技术

2022-10-20 10:05:19

IT项目首席信息官

2012-04-27 07:47:07

2009-09-28 11:16:23

UPS电源

2020-08-24 22:26:21

物联网数据IOT
点赞
收藏

51CTO技术栈公众号