最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React控制元素顯示隱藏的三種方法小結(jié)

 更新時(shí)間:2022年12月02日 09:02:33   作者:叉叉醬  
這篇文章主要介紹了React控制元素顯示隱藏的三種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

React控制元素顯示隱藏的方法

React控制元素顯示和隱藏的方法目前我知道的有三種方法:

  • 第一種是通過state變量來控制是否渲染元素,類似vue中的v-if。
  • 第二種是通過style控制display屬性,類似vue 中的v-show。
  • 第三種是通過動(dòng)態(tài)切換className。

方法一

第一種方法是通過此例中showElem變量來控制是否加載元素的,如果showElem為false,內(nèi)容是直接不會(huì)渲染的。

class Demo extends React.Component{
? ? constructor(props){
? ? ? ? super(props);
? ? ? ? this.state = {
? ? ? ? ? ? showElem:true
? ? ? ? }
? ? }
? ? render(){
? ? ? ? return (
? ? ? ? ? ? <div>
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? this.state.showElem?(
? ? ? ? ? ? ? ? ? ? ? ? <div>顯示的元素</div>
? ? ? ? ? ? ? ? ? ? ):null
? ? ? ? ? ? ? ? }
? ? ? ? ? ? </div>
? ? ? ? )
? ? }
}

方法二

這個(gè)方法很簡(jiǎn)單,就是通過display屬性來控制元素顯示和隱藏。

class Demo extends React.Component{
? ? constructor(props){
? ? ? ? super(props);
? ? ? ? this.state = {
? ? ? ? ? ? showElem:'none'
? ? ? ? }
? ? }
? ? render(){
? ? ? ? return (
? ? ? ? ? ? <div style={{display:this.state.showElem}}>顯示的元素</div>
? ? ? ? )
? ? }
}

方法三

通過className切換hide來實(shí)現(xiàn)元素的顯示和隱藏。

class Demo extends React.Component{
? ? constructor(props){
? ? ? ? super(props);
? ? ? ? this.state = {
? ? ? ? ? ? showElem:true
? ? ? ? }
? ? }
? ? render(){
? ? ? ? return (
? ? ? ? ? ? <div>
? ? ? ? ? ? ? ? {/* 寫法一 */}
? ? ? ? ? ? ? ? <div className={this.state.showElem?'word-style':'word-style hide'}>顯示的元素</div>
? ? ? ? ? ? ? ? {/* 寫法二 */}
? ? ? ? ? ? ? ? <div className={`${this.state.showElem?'':'hide'} word-style`}>顯示的元素</div>
? ? ? ? ? ? </div>
? ? ? ? )
? ? }
}

要注意的是,這幾種方法也有使用的區(qū)別:

方法一不適合頻繁控制顯示隱藏的情況,因?yàn)樗麜?huì)重新渲染元素,比較耗費(fèi)性能。在這種情況下,第二種或者第三種通過display來控制會(huì)更合理。

方法一適合安全性高的頁面,比如用戶信息頁面,根據(jù)不同的用戶級(jí)別顯示不一樣的內(nèi)容,這時(shí)候如果你用方法一或者方法二的話,用戶如果打開network還是可以看見,因?yàn)轫撁孢€是渲染了,只是隱藏了而已。而方法一是直接不渲染用戶信息的DOM元素,保證了安全性。

React切換顯示和隱藏

{radioChange >= 0 &&
? ? ? ? ? <div>
? ? ? ? ? ? {radioChange === 0 ? (
? ? ? ? ? ? ? <div className={style.template} key="1">
? ? ? ? ? ? ? ? <div className={style.inline}>如果金額超過</div>
? ? ? ? ? ? ? ? <Input className={style.input} label=" " id="free_price" rules={['required']}
? ? ? ? ? ? ? ? ? msg={this.msg} style={{ width: '100px', display: 'inlinbe-block' }} />
? ? ? ? ? ? ? ? <div className={style.inline}>元,免運(yùn)費(fèi),否則按照公里數(shù)收取,每公里</div>
? ? ? ? ? ? ? ? <Input className={style.input} label=" " id="unit_price" rules={['required']}
? ? ? ? ? ? ? ? ? msg={this.msg} style={{ width: '100px', display: 'inlinbe-block' }} />
? ? ? ? ? ? ? ? <div className={style.inline}>元,最多不超過</div>
? ? ? ? ? ? ? ? <Input className={style.input} label=" " id="max_price" rules={['required']}
? ? ? ? ? ? ? ? ? msg={this.msg} style={{ width: '100px', display: 'inlinbe-block' }} />
? ? ? ? ? ? ? ? <div className={style.inline}>元</div>
? ? ? ? ? ? ? </div>
? ? ? ? ? ? )
? ? ? ? ? ? ?: (
? ? ? ? ? ? ? ?<div className={style.template} key="2">
? ? ? ? ? ? ? ? ?<div className={style.inline}>如果金額超過</div>
? ? ? ? ? ? ? ? ?<Input className={style.input} label=" " id="free_price" rules={['required']}
? ? ? ? ? ? ? ? ? ?msg={this.msg} style={{ width: '100px', display: 'inlinbe-block' }} />
? ? ? ? ? ? ? ? ?<div className={style.inline}>元,免運(yùn)費(fèi),否則一口價(jià)</div>
? ? ? ? ? ? ? ? ?<Input className={style.input} label=" " id="price" rules={['required']}
? ? ? ? ? ? ? ? ? ?msg={this.msg} style={{ width: '100px', display: 'inlinbe-block' }} />
? ? ? ? ? ? ? ? ?<div className={style.inline}>元</div>
? ? ? ? ? ? ? ?</div>)

? ? ? ? ? ? }
? ? ? ? ? </div>

如上面代碼顯示,如果通過一個(gè)數(shù)值控制,顯示和隱藏切換的話,必須加入一個(gè)key值,否則在切換的時(shí)候活報(bào)錯(cuò),應(yīng)該是在頁面渲染的時(shí)候會(huì)重復(fù)利用這個(gè)元素,如果加入keys,渲染的時(shí)候,不會(huì)產(chǎn)生復(fù)用

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在React中編寫樣式的六種方式

    在React中編寫樣式的六種方式

    在React中,編寫樣式主要有以下幾種方式,內(nèi)聯(lián)樣式,外部樣式表,CSS Modules,Styled Components,Emotion和Radium這六種樣式,下面我將針對(duì)上面提到的6種方式給出詳細(xì)的代碼示例,需要的朋友可以參考下
    2024-01-01
  • React文字展開收起組件的實(shí)現(xiàn)示例

    React文字展開收起組件的實(shí)現(xiàn)示例

    本文主要介紹了React文字展開收起組件的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • React Router v4 入坑指南(小結(jié))

    React Router v4 入坑指南(小結(jié))

    這篇文章主要介紹了React Router v4 入坑指南(小結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • 關(guān)于react ant 組件 Select下拉框 值回顯的問題

    關(guān)于react ant 組件 Select下拉框 值回顯的問題

    這篇文章主要介紹了關(guān)于react ant 組件 Select下拉框 值回顯的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • React入門教程之Hello World以及環(huán)境搭建詳解

    React入門教程之Hello World以及環(huán)境搭建詳解

    Facebook 為了開發(fā)一套更好更適合自己的JavaScript MVC 框架,所以產(chǎn)生了react。后來反響很好,所以于2013年5月開源。下面這篇文章主要給大家介紹了關(guān)于React入門教程之Hello World以及環(huán)境搭建的相關(guān)資料,需要的朋友可以參考借鑒。
    2017-07-07
  • react如何快速設(shè)置文件路徑別名

    react如何快速設(shè)置文件路徑別名

    React是用于構(gòu)建用戶界面的JavaScript庫, 起源于Facebook的內(nèi)部項(xiàng)目,這篇文章主要介紹了react如何快速設(shè)置文件路徑別名,需要的朋友可以參考下
    2021-04-04
  • React簡(jiǎn)便獲取經(jīng)緯度信息的方法詳解

    React簡(jiǎn)便獲取經(jīng)緯度信息的方法詳解

    在現(xiàn)代的Web應(yīng)用程序中,獲取用戶的地理位置信息是一項(xiàng)常見的需求,本文我們將介紹如何在React應(yīng)用程序中簡(jiǎn)便地獲取用戶的經(jīng)緯度信息,需要的可以參考下
    2023-11-11
  • 詳解React-Native解決鍵盤遮擋問題(Keyboard遮擋問題)

    詳解React-Native解決鍵盤遮擋問題(Keyboard遮擋問題)

    本篇文章主要介紹了React-Native解決鍵盤遮擋問題(Keyboard遮擋問題),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • useReducer?createContext代替Redux原理示例解析

    useReducer?createContext代替Redux原理示例解析

    這篇文章主要為大家介紹了useReducer?createContext代替Redux原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 詳解React項(xiàng)目的服務(wù)端渲染改造(koa2+webpack3.11)

    詳解React項(xiàng)目的服務(wù)端渲染改造(koa2+webpack3.11)

    本篇文章主要介紹了詳解React項(xiàng)目的服務(wù)端渲染改造(koa2+webpack3.11),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03

最新評(píng)論

大埔区| 玛多县| 汾阳市| 乐陵市| 云梦县| 鄂尔多斯市| 巨鹿县| 新营市| 大埔县| 扎兰屯市| 化州市| 红安县| 宝鸡市| 南雄市| 温泉县| 上高县| 长顺县| 禄丰县| 阿拉善左旗| 黄梅县| 台州市| 法库县| 宜君县| 张家界市| 临颍县| 疏附县| 潞城市| 紫云| 和硕县| 翼城县| 拜城县| 宽甸| 斗六市| 南汇区| 上思县| 泸州市| 彰武县| 清丰县| 新田县| 讷河市| 潍坊市|