当 ReactJS 遇到 TypeScript

Posted

tags:

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

 由于本人应用项目主要是2B的web应用程序, 所以以下暂不谈react的服务端渲染和react navie,

 

先说说ReactJS:

 

  1. React 的组件化和  数据单向绑定 的模式(flux) 使应用程序更易于开发和维护。
  2. 相对于angular,Ember这种全面的框架,react 比较轻量级(非包大小),这样比较容易在其基础上架构应用或者配合其他功能库。
  3. 视图层的JSX无缝混合js代码,功能强大又不失可读性,可以说是集成了声明式编程和命令式编程的优点。
  4. 框架支持增量更新DOM的特性能有效保证程序的性能,通俗点说,就是不容易让一般水平的人写出性能糟糕的程序,这一点对于组织大型复杂的应用程序来说是很重要的。

 

再说说TypeScript

   

  1. 强类型的编程语言更有利于工程化的一个原因是,更能被IDE充分的支持。宇宙最强IDE的VisualStudio 不只给TypeScript带来了很好的编程体验,近视于C#的方式实现了代码模块化 同时又能保留js动态语言灵活性,
  2. 一键生成解决了编译压缩的问题。
  3. TSX对于React的JSX也提供了很好的支持。

 技术分享

使用ReactJS 和 TypeScrit 一段时间,总结了自认为一些比较实用的Tip,跟各位分享,望能起到抛砖引玉的作用 ,高手不吝赐教 :

1.如何打包成单个js
  使用r.js  与VS 编译集成。当然在开发阶段这部分可以省略。
技术分享
 
2. 组件化使用面向对象的方式,参考winform  和 webform
    面向对象的方式定义React组件(图)
    组件基类:
    技术分享
    已经写好的控件
    技术分享
3.使用消息机制来解耦
    组件之间的通信,尽量不要互相引用,通过消息机制来完成。
    Flux的思路也是如此,可以不需要直接使用flux库,如果掌握了flux的核心思路,用任何一个js事件消息库都可以。
    这边用的是EventEmitter2库
   技术分享技术分享
 
    
4.自己定义路由机制
   技术分享
   
5.使用后端编程的插件机制来解耦
    由于JS的动态语言特性,原生支持插件。所以只需要做一些少量封装,就可以实现简单实用的IOC插件功能。
    技术分享
控件注册:
    技术分享

 

以上是关于当 ReactJS 遇到 TypeScript的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:fs.​​existsSync 不是函数(Electron/ReactJS/Typescript)

缺少元素的“关键”道具。 (ReactJS 和 TypeScript)

Typescript & ReactJS 如何动态设置状态

在 ReactJS + Typescript 中加载 CSS 模块并重新连接反应

ReactJS 和 Typescript :引用一个值,但在此处用作类型 (TS2749)

typesafe 使用 reactjs 和 typescript 选择 onChange 事件