总结react中遇到的坑和一些小的知识点
来源:互联网 发布:主机名和域名的区别 编辑:程序博客网 时间:2024/06/05 16:07
在使用react 中经常会遇到各种个样的问题,如果对react不熟悉则会对遇到的问题感到莫名其妙而束手无策,接下来分析一下react中容易遇到的问题和注意点。
1、setState()是异步的
this.setState()会调用render方法,但并不会立即改变state的值,state是在render方法中赋值的。所以执行this.setState()后立即获取state的值是不变的。同样的直接赋值state并不会出发更新,因为没有调用render函数。
2、组件的生命周期
componentWillMount,componentDidMount 只有在初始化的时候才调用。
componentWillReceivePorps,shouldComponentUpdate,componentWillUpdata,componentDidUpdate 只有组件在更新的时候才被调用,初始化时不调用。
3、reducer必须返回一个新的对象才能触发组件的更新
因为在connect函数中会对新旧两个state进行浅对比,如果state只是值改变但是引用地址没有改变,connect会认为它们相同而不触发更新。
4、无论reducer返回的state是否改变,subscribe中注册的所有回调函数都会被触发。
5、组件命名的首字母必须是大写,这是类命名的规范。
6、组件卸载之前,加在dom元素上的监听事件,和定时器需要手动清除,因为这些并不在react的控制范围内,必须手动清除。
7、按需加载时如果组件是通过export default 暴露出去,那么require.ensure时必须加上default。
require.ensure([], require => { cb(null, require('../Component/saleRecord').default)},'saleRecord')
8、react的路由有hashHistory和browserHistory,hashHistory由hash#控制跳转,一般用于正式线上部署,browserHistory就是普通的地址跳转,一般用于开发阶段。
9、标签里用到的,for 要写成htmlFor,因为for已经成了关键字。
10、componentWillUpdate中可以直接改变state的值,而不能用setState。
11、如果使用es6class类继承react的component组件,constructor中必须调用super,因为子类需要用super继承component的this,否则实例化的时候会报错。
- 总结react中遇到的坑和一些小的知识点
- 总结react中遇到的坑和一些小的知识点
- ios一些开发中遇到的小知识点
- 总结的一些小知识点
- 项目过程中遇到的问题及小知识点总结
- iOS 遇到的小知识点总结
- 从 Exploit Exercises Nebula 中总结linux的基础漏洞和一些小知识点
- React-Native中遇到的一些坑(未完待续)
- 我在React Native开发中遇到的一些坑
- 开发过程中 遇到的一些小问题 总结一下
- Python学习中遇到的小知识点
- 项目中遇到的一些知识点
- Linux的一些小知识点总结
- android 开发中遇到的一些小的知识点在此做一个记录(持续更新)
- 总结一下使用Swift遇到的几个小问题和几个小知识点
- 主要是个人在开发过程中遇到的一些问题以及自己在论坛和博客上汇总的一些小知识点。
- 项目中遇到的几个知识点总结
- 总结:遇到的一些小问题
- linux下vi或vim操作Found a swap file by the name的原因及解决方法
- 【Shell脚本攻略】-shell中各种括号()、(())、[]、[[]]、{}的作用
- JAVA JSON 解析
- 逻辑斯谛回归与最大熵模型
- 微信网页授权之地理位置获取----微信js-sdk
- 总结react中遇到的坑和一些小的知识点
- lombok插件
- AR-API-详解EBS接口开发之应收款处理2
- Docker 使用镜像
- 微信公众号后台介绍,公众平台用法讲解。
- 输入文本框内容a标签中的链接自动改变
- 第四章:控制执行流程
- 初学者如何从零学习人工智能?看完你就懂了
- C#网页解析获得HTML中JS变量,一个是浏览器交互(EvaluateScriptAsync),一个是HtmlAgilityPack解析