前端干货React Native 与 TypeScript

Posted 极客学院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端干货React Native 与 TypeScript相关的知识,希望对你有一定的参考价值。

       2017年,React Native 和 TypeScript 是各大前端新闻频繁刷屏的网红。

        但其实很少有同学会想到,它们也可以直接搭配使用,而且效果意外的好。

        但在介绍它们之前,还是得先给不熟悉前端的同学介绍下,什么是 React,只有这样,大家才能领略到 React Native 设计得精妙之处。


    React


        React 为程序猿们提供了一种子组件不能直接影响外层组件,俗称 Data Flows Down 的组件模型。

【前端干货】React Native 与 TypeScript

(配图是 Facebook 经典的 Data Flow 模型)


        换句人话来讲,如果我们将每一个组件视作一个函数,参数是输入,状态表现是输出,那么 React 提供了非常一致性的解决方案。它的语义一致,资源建模,组件模型可组合,这也是软件行为的最小化的模型。 不只是应用于前端 Web,即便是更广阔的场景也同样是适用的。


        也正由于它是基于虚拟 DOM 的实现,所以它不只可以对应 Web 进行开发,也能将虚拟 DOM 映射到 iosandroid 等的 Native  View 上去。

        在这样思维的指导下,Facebook 就制造了 React Native。

【前端干货】React Native 与 TypeScript


        React 的心,Native 是壳。


        但不局限于 Native,在社区的帮助下,它输出到了 VR,也输出到了 Sketch,还到了 Windows,以及 macOS。

        「Learn Once, Write Anywhere. 」的思想变现的淋漓尽致


React Native


        在 React Native 的早期,它的目的很简单,就是扩大 React 的适用场景,但出人意料的是,这个简单目的一脚踹开了大前端时代的大门。

        同一种架构,同一种语言。让多端开发不再有语言和架构的隔阂,这是大前端时代大前端筑造巴别塔的又一次尝试。

        为什么说又呢,因为在这之前是有无数次实践的,比如 ionic,PhoneGap。但它们的性能和拓展性相较于 React Native 而言,实在是不够看。

        所以从工程实践来看,这次的巴别塔是十分成功的,成功到京东,QQ,Instagram 都愿意直接使用它。

        非常幸运的是,React 生态的全家桶在整个 React Native 中也是完全通用的。

        React 前端开发者直接切换到 React Native 开发是没有任何障碍的,这也是为什么大厂们很快转向了 React Native,确实让人力变得富裕了。

        纯 Web 的前端开发者和 iOS、Android 等 Native 端的开发者确实很有必要去了解下大前端时代为我们带来的变革。

        毕竟有人说过,一个人的命运啊,当然要靠自我奋斗,但是也要考虑到历史的行程。更加全面多样化的前端开发者更能适应大前端时代的浪潮。


TypeScript


        TypeScript 是 javascript 的超集,也就是增加了类型的版本,在编译后会去掉类型,生成纯粹的 JavaScript 代码。


下面是一段 TypeScript 的代码

【前端干货】React Native 与 TypeScript


编译 成 ES5 后则是这样的


        从以上可以看出 TypeScript 的代码可读性是更强的,而且TypeScript 本身并不依赖于浏览器或平台的支持,编译出的也是 JavaScript,所以直接在浏览器或 Node 环境中运行都不会带来任何兼容性问题。

        TypeScript 是 JavaScript 的超集,这意味着支持所有的 ES5、ES6 语法,并有自己的特殊语法,比如类型和 enum 等。这会极大的提升代码的阅读性,也可以使 TypeScript 执行静态类型检查。


换句人话来讲就是,

 1.静态类型检查

 2.IDE 智能提示

 3.代码重构

 4.可读性

        

         但 JavaScript 本身是没有类型,总有 TypeScript 无法表达类型的情况,不要急,虽然是强类型语言,但是如果对象被声明为了 any 类型,就会忽略它相应的类型检查。

        依靠这样的操作,TypeScript 保持了灵活性。


        最后我们再来看一下 TypeScript 在 Google Trends 上的排名。

        与 React 这样的大热门而言,是完全不能相比的,但压制竞争对手 Flow,是完全可以的。

        基于以上优点,希望带领大家进入 TypeScript 的世界一探究竟。


React Native && TypeScript


        那为啥我们要将两者结合呢 ?

        其实写过 iOS 或者 Android 原生代码的同学可能深有感触。在没有严格的类型检查的情况下,写出的 RN 的代码,是非常容易出问题的。

        尤其是才从功能齐全的 XCode 和 Android Studio 转过来的同学,发现 JS 的 RN 在后期维护,重构方面非常的困难,IDE 也没有提示,整个人想死的心情都有了。

        TypeScript 很好的弥补了这样的短板,为原生开发且想尝试 RN 的同学提供了一条较为平缓的道路,而对前端的东西来说,有 TS 的辅助也不是坏事。

常言有道,

        “两件快乐的事情重合在一起,而这两份快乐,又给我带来更多的快乐,但是,为什么,会变成这样呢?”

        需要准备的东西多了,环境搭建就会变得麻烦了,但不用担心,我们刚好有准备一个课程来帮你完成这两份的快乐,并给你带来更多的快乐。


TypeScript in React Native课程


        此课程内容主要是基于 Demo 的 React Native 在 TypeScript 环境下的入门教学视频,同时也包括TDD 的内容。

        没错,不止两份快乐,我们还会给你更多的快乐。

        课程入门门槛中等偏低,强调工具的使用和理论的教学。

        TDD 作为一门开发编程实践,在前端开发中,往往处于提的多,做的少的尴尬状态,也希望同学们能通过本视频教学,正式了解如何在生产环境中实践TDD,为自己的工作学习带来良好的习惯。这是非常有益的。

        最后同学们可以点击“阅读全文”打开课程,好好研究下这更多的快乐:)



以上是关于前端干货React Native 与 TypeScript的主要内容,如果未能解决你的问题,请参考以下文章

前端程序猿的天花板?react-native开发及调试方案(真实项目,建议收藏)

干货 | 从0到1,搭建一个体系完善的前端React组件库

React Native在特赞的应用与实践

React Native-目前最火的前端技术?

React-Native 可能是最友好的Gank.io(干货集中营)客户端了

React-Native 可能是最友好的Gank.io(干货集中营)客户端了