由于本人应用项目主要是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插件功能。
    
控件注册:
    

最新文章

  1. CentOS 7 Git安装
  2. Jstorm可靠性分析
  3. C# 类型基础
  4. 那么小伙伴么,问题来了,WPF中,控件的Width="*"在后台怎么写?
  5. 第二百四十八天 how can I 坚持
  6. RibbonForm使用技巧
  7. 面试题:HTTP与HTTPS
  8. [LeetCode] Next Greater Element I 下一个较大的元素之一
  9. U盘快速启动热键
  10. git ssh https 踩坑记 ---- 域账号密码更新
  11. Android 2018最新验证手机号正则表达式
  12. Unity2017五子棋大战_人机_双人_UNET联网
  13. unity实现一个物体绕着某点旋转
  14. 2.4 Oracle之DCL的SQL语句之用户权限以及三大范式
  15. leetcode 72 编辑距离 JAVA
  16. Linux上安装Oracle11g
  17. Lucene学习入门——核心类API
  18. JQuery利用选择器定位动态id?
  19. Matlab princomp函数浅析
  20. 求矩阵的n次方 c语言实现

热门文章

  1. 201521123019 《Java程序设计》第8周学习总结
  2. 201521123006 《Java程序设计》第7周学习总结
  3. 杨晨露 Java 第一周总结
  4. 201521123065《java程序设计》第11周学习总结
  5. 201521145048《java程序设计》第10周学习总结
  6. 201521123100 《Java程序设计》第11周学习总结
  7. lincode.41 最大子数组
  8. SpringMVC第五篇【方法返回值、数据回显、idea下配置虚拟目录、文件上传】
  9. 初识ELF格式 ABI,EABI,OABI
  10. MongoDB 分布式架构 复制 分片 适用性范围