zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    mysql常用时间列表的查询——七天内、本月、本周、某天
    js取数组获取最大值的四种方式
    Mysql按周,按月,按日,按小时分组统计数据
    Mysql中的sum函数为null时的解决办法
    Maven 中 dependencyManagement 标签使用
    嵌入式printf函数运用基于ti 16位MCU
    md5实现对用户名与密码的保护
    c# md5 算法实现
    define a struct
    file.open异常处理
  • 原文地址:https://www.cnblogs.com/nyhhd/p/12302489.html
Copyright © 2011-2022 走看看