egg-isomorphic
基于egg框架的前后端分离(页面直出)实现方案。
快速开始
服务端启动:
$ npm install
$ npm start
前端启动:
$ cd app/public/assets
$ npm install
$ npm build
$ npm start
准备就绪,去浏览器查看:
$ open http://localhost:7001/news
注意: egg 在开发期默认启动 development
插件,修改服务端代码后,会自动重启 worker 进程。
egg使用问题及建议
Please open an issue here.
业界相关实践
- 腾讯新闻React同构直出优化实践
- React同构实践与思考
- React Koa 同构实践
- 降低首屏时间,“直出”是个什么概念?
- 【AlloyTeam优化系列】Node直出让你的网页秒开
- Node直出理论与实践总结
- 趣店(原分期)前端团队基于koa.js的前后端分离实践
- (番外篇) 同构化的 React + Redux 服务端渲染
- React+Redux同构应用开发
- 前后端分离与前端工程化
概念说明
概念 | 描述 |
---|---|
Controller | 逻辑更加简洁,专注 Web 页面的渲染 |
Service | 负责组装和格式化 Proxy 接口提供的数据,并封装业务逻辑,被多个 Controller 使用 |
Proxy | 从 Service 中细分出的数据层,专门负责跟后端获取数据。 |
egg插件编写
插件是 egg 的精髓之一,它其实就是一个 mini 应用,用于逻辑解耦,便于生态复用和差异化定制。
优点 | 描述 |
---|---|
共建生态 | 譬如 egg-security这些插件,沉淀了很多企业级开发的经验,可以在应用中自由选择,一键引入,极大的方便了开发者。 |
差异化定制 | 譬如 view 插件,在 egg 里面只是定义了 view 的规范和接口,上层应用可以使用不同的插件, 如 egg-view-nunjucks来实现差异化定制。 |