1.react中的事件中绑定方式:
1)使用箭头函数即匿名函数进行绑定(缺点是,页面每渲染次,就生成一次匿名函数)
2)使用普通函数进行绑定(缺点:函数内部this指向不一致,需要使用bind函数进行绑定this,但同样造成渲染一次就bind一次,优点,bind函数可以传参)
3)使用普通函数绑定且直接传参,那样就直接暴露了参数,需在普通函数内部调用普通函数并且bind this
4)这个是为了及时更新数据源的state状态,所以在绑定函数的内部调用根组件的函数改变根数据的state
2.react里面通过ref来获取组件中dom元素,要使用ref之前必须调用React.createRef方法来创建一个ref(这一般在构造函数中进行
3.原本由数据控制的元素,react中dom操作不能使数据发生变化,得自己从数据源中去更改
比如,由数据控制的复选框,在页面点击时不能生效,但还是会触发change事件
4.页面渲染时,事件绑定函数加个括号会自动执行事件绑定的函数(怀疑是闭包的问题)
5.render方法是react用来构建虚拟dom的
6.react的生命周期:
1)shouldComponentUpdate(nextProps,nextState):方法在render方法前可以通过此方法来控制它返回true或false是否执行render
2)react中为了解决重复render问题,也准备了PureComponent对象(它会在上面的方法中对props和state进行第一层的比较)
3)react中有静态的getDerivedStateFromProps()方法,在render方法前可处理props,也可转变state,即在方法中return即可,react会将它自动更新进state中
7.如果想要全局扩展React.Component的prototype,比如想把ajax的方法全局挂载组件的this上
1)引入所有的ajax请求
import * as services from './services'
2)放进prototype原型对象中的新对象http
React.Component.prototype.http = services