React全家桶+Egg 做一个协作聊天室~

1,513 阅读2分钟

前端主要为:react+mobx+react-routerv4+socket.io+styled-components+flow 后端主要为:egg+mongodb+redis

前端

其实也就是毕业设计,不过目前进展比较缓慢,只出了一个比较简单的版本把基本功能和聊天的弄完了,比较希望是能把图片协作和表格的给弄完。

TAT 还是讲一下收获吧 ,不感兴趣就可以直接向下面看啦。

基本这个全家桶就是这几个月用的技术栈了,通过了styled-components 拥抱了css in js,比较好的一点是代码层级更加语义化了,不借助sass,less也能做到全局主题共享。在复用层面上感觉需要一点功底,目前还没能使用好,但是总体来讲,基于styled-components 把样式也作为公有组件。

在整体项目构建的时候,直接把项目拆分,布局,公有组件,公有组件细分,高度复用的类似输入组件,图片上传组件,高阶组件,这些都是可以提取下来的。

在数据管理方面,使用了相对自由的mobx,结合mobx-react-form其实使用起来处理表单都比较舒服,但是是数据局部管理还是通过stores全局管理,这一点上,依旧需要更多打磨。,但是实践的时候有个小问题,react-hot-loaderV3 的时候局部变量热更的时候有时候会直接break掉,而更新到v4的时候直接就蹦了。。 这个倒有点小尴尬。

在使用Mobx的时候深入学习了一波,于是有了 mobx-react源码阅读

(作为切入点趁机还给mobx-react 贡献了一下代码 不过好像挖了个坑 (逃

说一下flow,flow-type 和flow-runtime 是各种坑,个人感觉实在不是太友好,慢慢摸索学习使用吧。

后端

讲一下egg吧,开箱即用,本身基于koa2开发,共用koa的生态圈,本身社区也在不断发展。对新人还是比较友好,因为有用过koa的经验所以整体还是比较快上手。。。虽然只是个练手项目~。

basic cover

  • [x] controller
  • [x] service
  • [x] model
  • [x] plugin
  • [x] extend
  • [x] logger
  • [ ] validate params
  • [ ] test

Advanced

  • [x] middleware --check(not)Login and spa redirect
  • [x] socket.io
  • [x] custom plugin --egg-mongolass
  • [x] deploy
  • [ ] err-handler

preview

online

font

server

test account:123456789@qq.com | password:123123123

account:12345678@qq.com | password:123123123