react條件渲染

條件渲染的幾種形式

//第一種,在render里面判斷
**三元運(yùn)算符**
  render() {
    console.log('render')
    return (
      <div className="App" onClick={this.handleClick}>
          xxx
          <ul>
              {this.state.isList? this.state.arr.map((item,i) => {
                return <Person key={i} item={item}></Person>
            }):null}
          </ul>
      </div>
    );
  }

&&短路運(yùn)算符

image.png

//第二種,獨(dú)立出來(lái)寫(xiě)變量

  render() {
    console.log('render')
    let isList = this.state.isList;
    let arr = this.state.arr;
    let comp = null;
    if(isList) {
      comp = arr.map((item,i) => {
        return <Person key={i} item={item}></Person>
      })
    } else {
      comp = null
    }
    return (
      <div className="App" onClick={this.handleClick}>
          xxx
          <ul>
              { comp }
          </ul>
      </div>
    );
//第三種,寫(xiě)成組件的方法
  getLogin = (isList,arr) => {
    //從props解構(gòu)賦值
    // console.log(props)
    // let {arr,isList} = props
    if(isList) {
      return arr.map((item,i) => { return  <Person key={i} item={item}></Person> })
    } else {
      return null;
    }
  }
  render() {
    console.log('render')
    let isList=this.state.isList
    let arr=this.state.arr
    return (
      <div className="App" onClick={this.handleClick}>
          xxx
          <ul>
              {this.getLogin(isList,arr)}
          </ul>
      </div>
    );
  }
}
//第四種,獨(dú)立成函數(shù)式組件(注意需要從props從獲取傳參)
 render() {
    console.log('render')
    return (
      <div className="App" onClick={this.handleClick}>
          xxx
          <ul>
              <Login arr={this.state.arr} isList={this.state.isList} />
          </ul>
      </div>
    );
  }
}
function Login({arr,isList}) {
  //從props解構(gòu)賦值
  // console.log(props)
  // let {arr,isList} = props
  if(isList) {
    return arr.map((item,i) => { return  <Person key={i} item={item}></Person> })
  } else {
    return null;
  }
}

總結(jié):
根據(jù)組件代碼的復(fù)雜程度,可以依次選擇。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容