由于原项目的前端使用的是ejs,没有用到三大框架。考虑到nodejs开发者好多是从前端转过来或同时具备前端开发的能力,
所以笔者计划用react重构前端界面,考虑到社区需要服务端渲染和管理全局数据,所以使用了nextjs和redux。
原项目采用的技术栈:Nodejs, Express, Mongodb, Redis, ejs和less,典型的MVC架构
本仓库采用的技术栈:Nodejs, Express, Mongodb, Redis, React, Redux, nextjs, webpack和less
由于时间和精力,本仓库只React化了社区主页和所有导航导航页面,可以使用github快捷登录,但不能注册邮箱登录。
本仓库仅用作技术交流,有兴趣的同学,欢迎加入一起happy哈。
react项目地址:Nodeclub - React
体验地址: http://192.144.213.72:3334/
最后:体验地址里引用了https://cnodejs.org/一些帖子,如有侵权,欢迎联系笔者。此项目暂不属于cnode.org官方项目,正在努力争取。
消灭零回复
哈哈 前端和node不分家的把
用react重构有什么好处呀。
服务端渲染的性能是个巨坑
@awong1900 在使用nodejs做服务端渲染的前提,使用react比其他模板引擎的优势如下:
- 语言的使用人数。会用react的前端一大把一大把,但是会用handlebar或jade或其他模板引擎的人非常好,所以从团队招聘的角度上讲,使用react更容易找到人。
- 语言的流行程度。其实和第一条有点像,语言越流行,使用的必要性就越大。加入jade比react流行,那么完全可以使用jade
- 前端的复杂性。加入前端很复杂,需要管理多种数据,组件之间还需要通信,共享数据之类的,那么模板引擎是做不到的。
- 开发效率和网页性能。使用框架的开发效率是很高的,而且容易构建复杂的前端应用程序。众所周知,数据驱动的性能是最佳的
- 逻辑解耦。react可以使用ref获取元素,二模板只能使用jquery,如果有人重构你的dom,但是忘记把相应的jquery选择的元素删除,会在逻辑层面引发不可知的问题。因为在dom上完全看不出来到底有没有jquery在用这些dom。如果使用ref就没有这些顾虑了。此外react组件复用比模板引擎好用
- 优秀的延展性。项目越大,维护模板引擎的成本就越高,最后容易引起牵一发而动全身。而react的模块管理使得项目结构和逻辑相对清晰。
@muyuxingguang 这里的性能指的是服务器的性能吗?服务端渲染一大优势在于提供良好的用户体验,尽快显示网页给用户。
@guizhiyicao 是的,据我所知,大部分node工程师是从前端转过来的。前端越来越复杂,然后就会发现后端好简单。只要不是特别大的项目,后端只需处理下db和redis,数据发送到前端进行处理。保证数据的完整性和原始性。减少有时候改需求既要改前端还要改后端的尴尬场景
前端工程化,找react生态解决就好了