react第三天学习笔记

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

 

posted @ 2020-02-13 10:26  whhhd  阅读(153)  评论(0编辑  收藏  举报