React條件渲染實(shí)例講解使用
我們先創(chuàng)建一個(gè)用于演示條件渲染的組件
import './App.css'; import React from "react"; class App extends React.Component{ constructor(props){ super(props); this.state = { signIn: false } } increase(){ this.setState({ signIn: !this.state.signIn }) } render(){ let ligin = this.state.signIn?<span>已登錄</span>:<span>未登錄</span> return ( <div className="App"> { ligin } <button onClick = { this.increase.bind(this) }>{ this.state.signIn?"取消登錄":"登錄" }</button> </div> ) } } export default App;
這里我們模擬了一個(gè)登錄和未登錄的情況
首先 我們?cè)趕tate中定義了一個(gè)signIn 這是個(gè)布爾類(lèi)型的變量 比喻成 他為true 表示用戶(hù)已登錄 為false 表示用戶(hù)還沒(méi)有登錄
然后 我們?cè)趓ender函數(shù)中定義了一個(gè)ligin變量 他用了三元運(yùn)算符 這里是在判斷 this.state.signIn是不是true
如果為true 則為已登錄 否則 是未登錄
然后 這個(gè)ligin就接受到了結(jié)果 然后我們將他插入在我們的頁(yè)面元素中
運(yùn)行的效果就是這樣
然后我們點(diǎn)一下按鈕
因?yàn)榘粹o的點(diǎn)擊事件會(huì)改變signIn 他的條件改變了 渲染的元素就 不一樣了
然后我們的條件判斷也可以直接寫(xiě)在頁(yè)面里
我們?cè)趕tate中再加一個(gè)list值
constructor(props){ super(props); this.state = { signIn: false, list: [] } }
我們加了一個(gè)list變量 他的值是一個(gè)空數(shù)組
然后我們?cè)趓ender中循環(huán)遍歷這個(gè)list
render(){ let ligin = this.state.signIn?<span>已登錄</span>:<span>未登錄</span> return ( <div className="App"> { ligin } <div> { this.state.list.map((item,index) =>{ return <p key = {index}>{ item }</p> }) } </div> <button onClick = { this.increase.bind(this) }>{ this.state.signIn?"取消登錄":"登錄" }</button> </div> ) }
但大家或許會(huì)發(fā)現(xiàn) 我們的數(shù)組是沒(méi)有值的啊
用戶(hù)一看 你這什么都沒(méi)有 是不是出問(wèn)題啦?
這是我們就可以判斷 如果數(shù)組是空的 給用戶(hù)一個(gè)提示
render(){ let ligin = this.state.signIn?<span>已登錄</span>:<span>未登錄</span> return ( <div className="App"> { ligin } { this.state.list.length > 0? <div> { this.state.list.map((item,index) =>{ return <p key = {index}>{ item }</p> }) } </div> : <div>暫無(wú)數(shù)據(jù)....</div> } <button onClick = { this.increase.bind(this) }>{ this.state.signIn?"取消登錄":"登錄" }</button> </div> ) }
我們這里判斷this.state.list的長(zhǎng)度大于0 我們就循環(huán)渲染 如果是0 那就展示提示 暫無(wú)數(shù)據(jù)…
我們代碼運(yùn)行結(jié)果如下
到此這篇關(guān)于React條件渲染的文章就介紹到這了,更多相關(guān)React條件渲染內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React-Native使用Mobx實(shí)現(xiàn)購(gòu)物車(chē)功能
本篇文章主要介紹了React-Native使用Mobx實(shí)現(xiàn)購(gòu)物車(chē)功能,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09react-redux中connect的裝飾器用法@connect詳解
這篇文章主要介紹了react-redux中connect的裝飾器用法@connect詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01react如何實(shí)現(xiàn)一個(gè)密碼強(qiáng)度檢測(cè)器詳解
這篇文章主要給大家介紹了關(guān)于react如何實(shí)現(xiàn)一個(gè)密碼強(qiáng)度檢測(cè)器的相關(guān)資料,使用這個(gè)密碼強(qiáng)度器后可以幫助大家提高在線帳號(hào)、個(gè)人信息的安全性,需要的朋友可以參考下2021-06-06react-native-fs實(shí)現(xiàn)文件下載、文本存儲(chǔ)的示例代碼
本篇文章主要介紹了react-native-fs實(shí)現(xiàn)文件下載、文本存儲(chǔ)的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解下2017-09-09React Native自定義標(biāo)題欄組件的實(shí)現(xiàn)方法
今天講一下如何實(shí)現(xiàn)自定義標(biāo)題欄組件,我們都知道RN有一個(gè)優(yōu)點(diǎn)就是可以組件化,在需要使用該組件的地方直接引用并傳遞一些參數(shù)就可以了,這種方式確實(shí)提高了開(kāi)發(fā)效率。對(duì)React Native自定義標(biāo)題欄組件的實(shí)現(xiàn)方法感興趣的朋友參考下2017-01-01React使用useImperativeHandle自定義暴露給父組件的示例詳解
useImperativeHandle?是?React?提供的一個(gè)自定義?Hook,用于在函數(shù)組件中顯式地暴露給父組件特定實(shí)例的方法,本文將介紹?useImperativeHandle的基本用法、常見(jiàn)應(yīng)用場(chǎng)景,需要的可以參考下2024-03-03使用react-dnd編寫(xiě)一個(gè)可拖拽排列的list
這篇文章主要為大家詳細(xì)介紹了如何使用react-dnd編寫(xiě)一個(gè)可拖拽排列的list,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03