-
React workshop 大纲
-
前言
- 不讲什么,比如build webpack,性能
- 不特意学 ES6+ JavaScript 语法,配置 babel
- 不用学什么,比如eslint,rules更重要但只需要一些设置即可
-
作为 team leader 和 teammates 的关注点不同
- 比如说 lint 更重要
- 比如说多 envs 支持
-
自顶向下,从 atomic design 开始
-
如何划分UI区域,拆卡
- 边讲边画出组件树,对应到 function
-
思考container components
- async 请求, setTimeout
- (simply) manage states
-
思考tranctional components
- 思考「微前端」在 三靠谱 的具体实践?
- 主要在于团队内结构(不分前后端)与团队间的合作(组合型页面)
-
Component-Driven Development (CDD)
- 从一个div讲起,一步步被封装成一个宇宙/人
- storybook就用于调试每一个component的styling
-
试试tdd,不同时刻不同工具
- tdd components,即 data 如何对应到 view
- tdd business logic,即 event 如何对应到 state
-
React Components
-
JSX & VM
-
从一个 f(data) => view 的函数说起 +jsx +vdom +lifecycle
- stateless components
- jsx 屏蔽掉了很多东西(React Element, Component, Instance)createElement
- virtual dom 是怎么玩的?为啥要全部 re-render?为什么需要 immutable.js
-
Lifecycle API
- constructor(object props) 而不是 componentWillMount()
- componentDidMount() 处理异步,fetch or axios 实践
- shouldComponentUpdate
-
State/Data Management
- Redux 则帮你屏蔽了 State 和 Component 的概念,即只需要写 function 即 stateless components 就好
- 至于 Business Logic 可以被 Redux 完美 cover,且可 TDD…
-
Integrated with AEM
- AEM 和 React 是怎么在一起愉快地玩耍的? · Issue #129
-
参考资料
- [Component Libraries | myThoughtWorks](https://thoughtworks.jiveon.com/message/1304058-re-component-libraries)
- [Learning Node/React The Right Way | myThoughtWorks](https://thoughtworks.jiveon.com/thread/635716-learning-nodereact-the-right-way)
- Learning React Native - Express
-
Nice to have
-
组件化
- Component-Driven Development (CDD)
- What's Atomic Design?with React?
-
使用 generator 搭建项目(+修改)
- `create-react-app`
- `react-app-stencil`
-
组件化 styling
- - [ ] (顺手)熟悉 Webpack loader 机制
- - [ ] 添加 css-modules 支持(with Intellij)
-
NPM 相关
- npm scripts (clean, serve, build, lint, lint:fix, etc)
-
搭建 register,已有 npm digital register
- 刚好切换至 taobao register 加快速度
- 使用 npm publish 版本 semantic versioning (https://docs.npmjs.com/getting-started/semantic-versioning)
-
介绍 yarn(提一句 cnpm)
- package versions lock
- 安装 packages 时的区别
-
在 React 中使用 JavaScript 高级技巧 #170
- ESNext+ 只在特定(React)使用情况下才讲
- 实际场景实际重构,穿插地讲一些高级特性