组件与服务器通信

1.组件挂载阶段通信:在组件挂在前请求数据(时间上来说会比componentDidMount早一些,越早执行就越快返回组件,但时间几乎微乎其微可以忽略不计)

componentWillMount (){
    fetch('././.').then((response)=>{
      response.json().then((data)=>{
        this.setState({users:data})
      })
    })
  }
复制代码

2.在组件挂载完成后请求 (官方规范)这个阶段是组件通信的最佳时期

<1>组价在这个阶段已经处于挂载状态,这时即使操作DOM也是安全的,而componentWillMount无法保证一点
<2>当组件在服务端渲染时,componentWillMount会被调用两次,服务端一次,客户端一次,而componentDidMount能保证在任何情况下都只会被调用一次
复制代码
componentDidMount (){
    fetch('././.').then((response)=>{
      response.json().then((data)=>{
        this.setState({users:data})
      })
    })
  }
复制代码

3.在组件更新阶段通信,组件需要以props中的某个属性作为与服务器通信时的请求参数,当这个属性发生变化时组件进行重新通信

componentWillReceiveProps (nextProps){
    if(nextProps.category !== this.props.category){
      fetch('././.').then((response)=>{
        response.json().then((data)=>{
          this.setState({users:data})
        })
      })
    }
  }
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值