react 记录

1. 两种获取dom节点 的方式

import React, {Fragment} from 'react'

class Test extends React.Component {
  constructor(props) {
    super(props);
    // 创建
    this.third = React.createRef();
  }
  componentDidMount(){
    // note: 不同的方式创建ref, 取值方式不同
    console.log(this.second)            // <input value="second">
    console.log(this.third.current);    //  <input value="third">
  }
  render() {
    // 赋值
    return (
      <Fragment>
        <input value="second" ref={(inputRef) => this.second = inputRef} />
        <input value="third" ref={this.third} />
      </Fragment>
      )

  }
}

export default Test

进阶:React.forwardRef

2. setState

在 React 内部,采用的是对象合并的操作,就和我们所熟知的 Object.assign() 执行的结果一样。( 在 React.js 内部会把 JavaScript 事件循环中的消息队列的同一个消息中的 setState
都进行合并以后再重新渲染组件。)

setState 还可以接受函数, 这样就直接更新了

this.setState((prevState, props) => ({ count: prevState.count + 1 }));

如果需要在完成更新后操作,可以在第二个参数callback回调中使用:

this.setState({foo: 123}, ()=> {
 console.log(foo);
 // 123
});

3. 子组件可以设置defaultProps默认值

class LikeButton extends Component {
  static defaultProps = {
    likedText: '取消',
   }
  constructor () {
    super()
  }
  }

如果父组件likedText 属性没有传进来,会直接使用 defaultProps 中的默认属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值