zoukankan      html  css  js  c++  java
  • 6.1 React组件 Component的两个问题

    1 Component的两个问题:

      1 只要执行 setState(),即使不改变状态数据,组件也会重新render()===》 效率低。

      2 只要当前组件重新render(),就会自动重新渲染render子组件,即使子组件没有使用到父组件的任何数据。 ===》效率低 。

    1 只要执行setState(),哪怕是空,也会重新。 2 父子组件,渲染子组件。

    2 那么应该怎么修改问题呢?

      只有在组件的state 或者 props数据发生改变的时候 才重新render()

    3 原因 :

      Component 的shouldComponentUpdate返回的是true

    4 解决:

      办法1: 重写shouldComponentUpdate()方法。(新就state或者props没有变换,返回false)

      办法2 : 使用PureComponent(component 这人里面的sholueComponent竟然不行,阀门不行)

          PureComponent重写了方法。

        注意:

          1只是state和props数据的浅层次比较,如果是内部局数据变了,返回false。

          2所有不要修改state的数据,二十产生新的数据。

    this.setState({  carName:' maibahe']  })    // 重新构建一个新对象。开辟一个新的对象。

    但是 const obj = this.state

    obj.carName ='maibaim'

    this.setState(obj)

     不要和原来的对象发生任何关系。

    push,unshift。

    同一个人,人家的阀门就是关闭的!

    ( { arr:['小刘',...stu]}) //添加一个。新数组!

  • 相关阅读:
    easy ui 表单ajax和from两种提交数据方法
    easy ui 下拉级联效果 ,下拉框绑定数据select控件
    easy ui 下拉框绑定数据select控件
    easy ui 异步上传文件,跨域
    easy ui 菜单和按钮(Menu and Button)
    HTTP 错误 404.3
    EXTJS4.2 后台管理菜单栏
    HTML 背景图片自适应
    easy ui 表单元素input控件后面加说明(红色)
    EXTJS 4.2 添加滚动条
  • 原文地址:https://www.cnblogs.com/hacker-caomei/p/14453552.html
Copyright © 2011-2022 走看看