-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
读书笔记-《深入浅出React和Redux》 #2
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
第1章 React新的前端思维方式
npm install --global create-react-app
create-react-app frist_react_app
第2章 设计高质量的React组件
一个组件只做一件事情
prop
state
this.setState
,原因如下:组件不应该改变prop的值,而state的存在的目的就是让组件来改变的;
组件的生命周期
分为【装载过程】、【更新过程】、【卸载过程】
装载过程
出现原因多是:
- 初始化state
- 绑定this
- 是一个纯函数,不能改变state和props的状态
- render函数不做实际的渲染动作,只是返回一个JSX的描述结果,最终的React来渲染;
第3章 从Flux到Redux
Redux
redux的三个基本原则: 唯一数据源;保持状态只读;数据改变只能通过纯函数完成;
唯一数据源:
只有一个Store,如何设计Store上的状态结构是要考虑的重点,原则是避免冗余的数据;
保持状态只读:
修改状态,只能够通过action修改,但是这个改变不是去修改状态上的值,而是创建一个新的状态对象返回给Redux。
数据改变只能通过纯函数
reducer(state, action)
例如:
说明,Redux的reducer只负责计算状态,不负责存储状态;
聪明组件和傻瓜组件
Context ??? (后期有时间了解一下)
Context 这个功能提供了一个全局可以访问的对象,一般避免使用
React-Redux
做了两个事情: 提供一个connect;提供一个Provider
相当于聪明组件,用mapStateToProps 把聪明组件的状态传给傻瓜组件,通过mapDispatchToProps把用傻瓜组件的用户行为转化为派发给Store的动作。
第4章 模块化React和Redux应用
第5章 React组件性能优化
可以提高性能,要满足两点:
工作原理:只要相关的状态没有改变,那就使用上一次缓存的结果;
要扁平化,范式化,所谓范式化,就是按照关系型数据库的设计原则,减少冗余数据;
第6章 React高级组件
第7章 Redux和服务器通信
fetch: 用fetch来访问服务器数据资源,fetch函数返回的结果是Promise对象,虽然被fetch广为接受,大有取代其他网络访问方式的架势,但是它有一个特性一直被人诟病,那就是fetch认为只要服务器返回一个合法的HTTP响应就算成功,就会调用then提供的回调函数,即使这个HTTP响应的状态码是表示出错了的400或者500。正因为fetch的这个特点,所以我们在then中,要做的第一件事就是检查传入参数response的status字段,只有status是代表成功的200的时候才继续,否则以错误处理。
访问服务器数据的时机和步骤
但是,React组件的渲染又是同步的,当开始渲染过程之后,不可能让Weather组件一边渲染一边等待服务器的返回结果。
总之,当Weather组件进入装载过程的时候,即使此时Weather立刻通过fetch函数发起对服务器的请求,也没法等待服务器的返回数据来进行渲染。因为React组件的装载过程和更新过程中生命周期函数是同步执行的,没有任何机会等待一个异步操作。
所以,可行的方法只能是这样,分两个步骤完成:
步骤1,在装载过程中,因为Weather组件并没有获得服务器结果,就不显示结果。或者显示一个“正在装载”之类的提示信息,但Weather组件这时候要发出对服务器的请求。
步骤2,当对服务器的请求终于获得结果的时候,要引发Weather组件的一次更新过程,让Weather重新绘制自己的内容,这时候就可以根据API返回结果绘制天气信息了。
Redux 访问服务器
第8章 单元测试
第9章 扩展Redux
中间件用来增强Redux Store的dispatch方法。
中间件模板:每个中间件都是一个函数,返回一个接收next参数的函数,而接收next参数的函数又返回一个接收actions参数的函数。next参数本身也是一个函数,中间件调用这个next函数通知Redux自己的处理工作已经结束。例如以下的代码:
上面的代码就等同于:
中间件的使用:
以同时使用 redux-thunk 和 redux-devtools 增强功能为例:
中间件的开发?????????
第10章 动画
第11章 多页面应用
对javascript进行分片打包,然后按需加载;
第12章 同构
以上画 ?号的都要再读一遍!!!!
The text was updated successfully, but these errors were encountered: