为什么学习React Native三点原因

简介: React Native不到两岁,兼容Android平台刚刚1年。我学习React Native其实也就不到1年,不算长,也不算短。 Paul Graham在文章中写过:大多数人真正注意到你的时候,不是第一眼看到你站在那里,而是发现了过了这么久你居然还在那里。我就是Paul提到的”大多数人”,当React Native刚出来的时候,我就通过CSDN等一些平台了解

React Native不到两岁,兼容Android平台刚刚1年。我学习React Native其实也就不到1年,不算长,也不算短。

Paul Graham在文章中写过:大多数人真正注意到你的时候,不是第一眼看到你站在那里,而是发现了过了这么久你居然还在那里。

我就是Paul提到的”大多数人”,当React Native刚出来的时候,我就通过CSDN等一些平台了解了React Native,但是并没有真正的关注它。

过了半年多,发现React Native不但还依然存在,而且还产生了不错的React Native社区。从此开始逐渐关注React Native。

至于为什么深入学习React Native,有以下几点原因。

一、开发React Native很少使用设计模式

对,你没有看错,确实是很少使用设计模式。有人会问我,这也算学习的理由?
我先搁置一下,先给大家讲个绝大多数人都听过的故事。

金庸小说中独孤求败的剑冢中,埋的是独孤求败一生几个阶段中用过的几柄剑。

第一柄是一柄青光闪闪的无名利剑。凌厉刚猛,无坚不摧,弱冠前以之与河朔群雄争锋。
第二柄是紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。
第三柄是玄铁重剑,重剑无锋,大巧不工,四十岁之前恃之横行天下。
第四柄是柄已腐朽的木剑,原因是独孤求败「四十岁后,不滞于物,草木竹石均可为剑」

独孤求败一生境界阶段分为利剑级、软剑级、重剑级、木剑级,对应用不同的武器。

而程序员编程阶段同样分为几个阶段。

  1. 利剑级,利剑招式一般直接。刚入职场的程序员,技术有限,一般都是以实现功能为主要任务,不考虑性能,模式。
  2. 软剑级,就是在招式已经发挥到极致的基础上追求变化的极致;当程序员迭代过几次项目,就会认识到程序存在的问题,代码也会更加规范。
  3. 重剑级,相比于软剑是一种质的飞跃;当程序员工作多年后,做过好多项目,慢慢就会了解各种模式,融会贯通,达到架构师的高度。
  4. 木剑级,基本上达到人剑合一的境界; 这也是我主要要讲的境界,能够回到程序的本质。

回到程序的本质,程序的形式应该仅仅反应它所要解决的问题。

当我们开发程序一段时间后,就会发现编程已经变得制度化了,尤其是使用面向对象的语言,我们大量听到 模式(pattern)这个词,但是我们应该想到模式并不应该存在的。
程序就是为了要解决问题,而在代码中其它任何外加的形式都是在告诉我们,表明对问题的抽象不够深,这些原本应该让编程语言本身去实现。

当我使用原生代码开发Android程序的时候,用到了大量设计模式——工厂设计模式,适配器设计模式,单例设计模式等等一大堆。一开始的时候自我感觉良好,认为自己很牛逼,面试别人或者自己去面试时都会显摆下。后来我就想,Android框架为什么不提供更深的抽象,让我直接实现具体的功能,而不用使用各种模式搭建各种框架呢?

当我接触React Native时,虽然React Native也需要用到一些模式(现阶段很难避免的),但是React Native整体设计架构要比Android强很多,非常直接。

举个例子,在React Native开发中,我们要改的数据统一放在状态机中,只要改动状态机里的数据,界面上不管有多少处,只要和改动的数据相关联都会发生改变。而在Android原生开发中,可能需要把多处要改变的封装到一起,进行操作,无疑多了一步封装。

代码更加直接,就意味着程序更加好维护。程序更好维护,就意味着成本更低。

二、学习成本比较高

第二点让我学习的理由就是React Native学习成本相对比较高,也许之前的理由你接受了,这个可能又会让你抓狂,为什么学习成本高还要去学习啊?

往往学习成本高的才更加值得去学习!

React Native学习成本确实很高,
你首先肯定需要学习JSX语法,React知识,学习ES6,函数式编程思想。如果你想了解React Native构建的还需要学习nodejs。封装原生组件还需要学习 java,object-c,swift, 也就是需要学习Android和ios原生开发。设计到通讯原理还需要了解C++。

有些程序员可能会因为想炫耀自己见多识广,会告诉你“所有编程语言基本相似”,“语言不重要,重要的是理解”;其实上面说的是一派胡言,每种语言从语法到概念,都不一样。你学会其中一门语言对你学另一门语言的好处就是你可以进行对比,加深学习的印象。

虽然学习成本很高,但是通过学习React Native而掌握这么多技术并不是什么坏事。React Native其实就把各种知识打成一个压缩包,让我们更有效率的学习。

React Native技术,同时具备可测量性和可放大性。

React Native既可以开发Android也可以开发IOS,尤其是写界面的速度非常快。通过测量完成的程序,理论上你可以是一名普通的Android/IOS程序员的两倍。

微软也开发了Windows Phone的React Native版本。通过React知识,你可以轻松写出Web端程序。甚至在微信小程序中都能找到React Native的影子。

我们这个世界,你向下沉沦或者向上奋进都取决于你自己,不能把原因推给外界。有些刚毕业的学生一听到5%的人占社会50%的财富,往往认为是不公平的。从程序员的角度,我也认为是不公平的,因为5%的程序员写出了全世界99%的优秀软件,他们就应该占更高比例的收入。

一个React Native程序员就应该是一个普通的Android/iOS程序员工资的两倍,并没有什么问题。

三、React Native还不是很完善

React Native还有很多坑,并不完善,React Native几乎每个月都有新的小版本发布,至今还没有推出1.0正式版本。这也恰恰使我们学习React Native的理由!

前几年,我在北京上班时经常听到javaEE程序员抱怨自己开发了这么多年不如一个新入职的Android/iOS程序员工资高。
其实很好理解啊,难道不知道技术越新越值钱这个道理吗?

程序员就像蚊子一样,群体很多,在后厂村路上10个估计有7个是程序员,但是每个程序员个体压力又很大,想生存必须吸取新鲜的血液。

目前使用React Native的公司不是很多,当你作为一个产品经理或CTO时,你肯定优先跟随大多数人的选择的做法,有个专业术语叫做“业界最佳实践”。因为这个词出现的原因就是为了产品经理/CTO 推卸责任。既然我选择的是“业界最佳实践”,如果不成功,不是我的问题,而是“业界”的问题。

但是如果你是一名程序员按照上面的做法你会死的很惨,因为“业界最佳实践”会逐渐变化的,一旦你掌握的技能不是“业界最佳实践”了,你就要想办法让你的房贷别断供了。

React Native不会取代Android/iOS原生开发,但随着React Native正式版推出,也许它就变成了“业界最佳实践”了。

关于如何学习React Native

如果想快速入门React Native,官方Api是肯定需要看的。里面不但有文档而且有例子,涵盖了绝大多数知识。
http://facebook.github.io/react-native/docs/getting-started.html
英文不好的话,可以参考react-native中文文档(建议也要对比英文文档)
http://react-native.cn/docs/getting-started.html

FaceBook官方也提供了演示App,可以作为参考
https://github.com/facebook/react-native/tree/master/Examples
facebook开源的f8项目也是蛮不错的
https://github.com/fbsamples/f8app

最后强烈推荐CSDN 提供React Native知识库, 里面涵盖了许多大牛对React Native知识的分享,能学到最新最全的知识。
http://lib.csdn.net/base/reactnative

总结

没有人有任何义务去看任何一篇文章,当您点击我的文章时就已经很看得起我了,我非常感谢您,也许我的观点并不是对的,但是我相信时刻保持一颗学习的心永远是对的。

更多精彩请关注微信公众账号likeDev
这里写图片描述

相关文章
|
11天前
|
前端开发 API UED
怎么学习React 18 进行项目开发?
【4月更文挑战第18天】学习React 18涉及新特性如并发模式、Suspense API和自动批处理更新,可提升性能和用户体验。首先了解这些新特性,然后掌握React基础知识,如组件化、JSX、props和state。使用Create React App创建项目,学习如何启用并发模式和使用Suspense显示占位符。实现自定义组件,关注props传递、状态管理和事件处理。通过Profiler优化性能,利用懒加载和代码分割减少加载时间,使用Context API共享状态。不断实践和探索,参考官方文档与社区资源,以提高开发技能。
103 3
|
11天前
|
前端开发 JavaScript API
如何学习react
【4月更文挑战第9天】 学习React前,需掌握JavaScript基础,了解React的JSX、组件、props、state和生命周期等概念。安装Node.js和npm,用Create React App搭建环境。学习核心API,如React.createElement、React.render等,并阅读官方文档。实践项目,从Todo List开始,逐渐挑战复杂应用。同时,学习相关技术如Redux、React Router,并参与社区交流,持续关注React新发展。持之以恒,祝学习顺利!
29 10
|
11天前
|
前端开发 JavaScript
react学习(Effect)
react学习(Effect)
25 3
|
11天前
|
开发框架 Dart 前端开发
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
【4月更文挑战第30天】对比 Flutter(Dart,强类型,Google支持,快速热重载,高性能渲染)与 React Native(JavaScript,庞大生态,热重载,依赖原生渲染),文章讨论了开发语言、生态系统、性能、开发体验、学习曲线、社区支持及项目选择因素。两者各有优势,选择取决于项目需求、团队技能和长期维护考虑。参考文献包括官方文档和性能比较文章。
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
|
4天前
|
前端开发 JavaScript Android开发
使用React Native开发跨平台移动应用的技术详解
【5月更文挑战第22天】本文详述了使用React Native开发跨平台移动应用的技术,该框架由Facebook推出,基于JavaScript,支持iOS和Android。React Native通过JNI/JSI实现JavaScript到原生代码的转换,提供高效性能和原生体验。其优势包括跨平台性、原生体验、开发速度及社区支持。开发流程涉及环境搭建、项目创建、编码、调试与测试,以及构建与发布。注意事项包括性能优化、平台适配、利用第三方库和持续学习。React Native为开发者构建高质量跨平台应用提供了便捷途径,未来潜力无限。
|
11天前
|
开发框架 移动开发 前端开发
【Uniapp 专栏】Uniapp 与 React Native 的对比分析
【5月更文挑战第14天】Uniapp和React Native是热门的跨平台移动开发框架。Uniapp以其一套代码多端运行、丰富的组件生态和较低的学习曲线受到青睐,适合快速开发简单应用。React Native基于React,拥有活跃社区和优秀性能,适合复杂应用。React Native在性能上略胜一筹,尤其在需要接近原生体验的场景。Uniapp的官方组件弥补了社区资源不足。选择时需考虑开发效率、性能需求、团队技术栈和社区支持。
【Uniapp 专栏】Uniapp 与 React Native 的对比分析
|
11天前
|
移动开发 前端开发 JavaScript
使用React Native进行跨平台移动开发
【5月更文挑战第13天】React Native是Facebook的跨平台移动开发框架,基于JavaScript和React,允许开发者编写原生应用。它提供跨平台性、原生性能、平缓的学习曲线及丰富的社区支持。开发流程包括安装CLI、创建项目、编写代码、运行调试及测试发布。进阶应用涉及状态管理、性能优化、原生模块集成和自动化测试。React Native降低了开发成本,提升了效率,是移动开发的优选方案。
|
11天前
|
开发框架 前端开发 JavaScript
【专栏】对比分析两种流行的跨平台开发框架——Flutter和React Native,探讨它们的优势、劣势以及适用场景
【4月更文挑战第27天】本文对比分析了Flutter和React Native两大跨平台移动开发框架。Flutter,由Google推出,以其接近原生的性能、快速启动和流畅滚动受青睐,适合高性能和高度定制的项目。React Native,Facebook维护,依赖JavaScript,虽性能受限,但热重载优势和丰富第三方库使其适合快速迭代的项目。两者都在拓展多平台应用,Flutter在桌面和Web,React Native在Windows。选择框架需考虑项目需求、团队技能和性能效率平衡。
|
11天前
|
Dart 前端开发 JavaScript
《跨平台移动应用开发探索:Flutter vs React Native》
在移动应用开发领域,跨平台技术日益成熟,Flutter和React Native作为两大主流框架备受关注。本文将对比Flutter和React Native在性能、开发体验、生态系统等方面的优劣,并探讨它们在不同场景下的适用性,以帮助开发者选择最适合自己项目的技术方案。
|
11天前
|
缓存 前端开发 Android开发
React Native
React Native
16 6

热门文章

最新文章