基于JVM使用React.js和Spring Boot建立同构的Web应用
2016-04-10 17:53
796 查看
这是一个展示如何使用Java的Spring Boot实现预渲染前端MVC(MVC-frontend)的同构Web应用开源项目:winterbe/spring-react-example
· GitHub
所谓同构Isomorphic应用是指Javacript在客户端和服务器端同时运行,后端和前端同享相同的代码。
传统Web应用是在服务器端产生HTML,然后发往客户端,后来这被客户端MVC改变如 Angular.js, Backbone.js or Ember.,但是在客户端产生HTML视图有优点和缺点,同构webapp试图克服其缺点,方式是通过在服务器端和客户端使用相同的技术同时产生视图来实现。
React.js是一个可程序化产生视图的Javascript库包,React是一种对传统MVC替代的Flux模式,它的组件能在服务器端和客户端实现渲染。
所以,这种同构架构一般需要前后端都是统一的Javascript环境,后端一般使用Node.js,但是本开源项目后端使用Java,通过Nashorn这个JVM的Javascript引擎在后端运行React的服务器端代码。
这种方式可能有性能损失,从严格概念上讲,不是真正的同构,但是考虑到后端大量的Java投入,这个设计不失为衔接传统遗留系统与现代潮流系统的折中方式,不过,千万要记住计算机科学的一条原则:
All problems in computer science can be solved by another level of indirection, except for the problem of too many layers of indirection.
在计算机科学中所有问题都可以通过引入另外一个间接层来解决,除了因为间接层太多带来的新问题。
相关文章推荐
- iOS ReactiveCocoa简单使用笔记
- React-native Redux 干货分享实践
- react native 开发环境的配置
- Python中reactor,factory,protocol
- 在手机上运行React Native
- React Native 介绍
- codeforce 608C Chain Reaction
- React:纯属性(pure prop),受控属性(controlled prop),半受控属性(half-controlled prop),一次性属性(onetime-prop)
- RN(react native)入坑指南-02,一个登录示例
- RN(react native)入坑指南-01,Hello RN,Windows下的环境搭建
- ReactiveCocoa
- ReactNative植入原生应用(windows)
- 【转】【React Native开发】
- 【REACT NATIVE 跨平台应用开发】环境搭建问题记录&&XCODE7模拟器上COMMAND+R失效的几种替换方法...
- 【REACT NATIVE 跨平台应用开发】环境搭建问题记录&&XCODE7模拟器上COMMAND+R失效的几种替换方法
- react-native-AsyncStorage<持久化数据存储>
- redux 配合 react 在项目中的使用(个人总结与备忘)
- redux 配合 react 在项目中的使用(个人总结与备忘)
- Android React-Native系列之<二>零基础学习React-Native控件之View
- RN(react native)入坑指南-03,运行官方示例UIExplorer