欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React事件監(jiān)聽和State狀態(tài)修改方式

 更新時(shí)間:2022年08月04日 11:22:34   作者:大名張無忌  
這篇文章主要介紹了React事件監(jiān)聽和State狀態(tài)修改方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

React事件監(jiān)聽和State狀態(tài)修改

on*函數(shù)可直接使用,但只能使用在html標(biāo)簽上,自己創(chuàng)建的組件標(biāo)簽不可

組件可以增加state狀態(tài),修改用setState方法,修改會(huì)有緩存,只能保證在渲染到頁(yè)面之前會(huì)改好。所以setState后立馬去使用值可能是不對(duì)的

狗子組件1:點(diǎn)擊會(huì)打印bark和run

class Dog extends Component {
? bark () {
? ? console.log('bark')
? }
??
? run () {
? ? console.log('run')
? }
??
? render () {
? ? return (<div onClick={
? ? //有兩個(gè)方法需要實(shí)現(xiàn),所以用一個(gè)函數(shù)進(jìn)行封裝
? ? ? ()=>{
? ? ? ? this.bark();
? ? ? ? this.run();
? ? ? }
? ? }>DOG</div>)
? ? }
}
ReactDOM.render(<Dog/>,document.querySelector('#root'));

狗子組件2:增加bark和run狀態(tài),開始為false,點(diǎn)擊變成true,1s后還原成false 

class Dog extends Component {
  constructor () {
    super()
    this.state={
      bark:false,
      run:false
    }
  }
  
  clickYeah () {
    this.setState({
      bark: true,
      run: true
    })
    //因?yàn)閟etState會(huì)有緩存,值后面才會(huì)變,所以這里打印出來還是false
    console.log('bark'+this.state.bark);
    console.log('run'+this.state.run);
    setTimeout(()=>{
      //1s之后將值改回成false,所以這里打印出來還是false。如果想要檢驗(yàn)前面修改成true有沒有生效,可以將這里setState修改成false的步驟先注釋掉
      this.setState({
        bark: false,
        run: false
      })
      console.log('bark'+this.state.bark+'run'+this.state.run);
    },1000)
  }
  
  render () {
    return (<div onClick={this.clickYeah.bind(this)}>DOG</div>)
  }
}
ReactDOM.render(<Dog/>,document.querySelector('#root'));

React事件監(jiān)聽相關(guān)例子

 var TestClickComponent = React.creatsClass({
    handleClick: function(event){
 
    //操作DOM節(jié)點(diǎn)
 
        var msg = React.findDOMNode(this.refs.tip);
         if(msg.style.display === 'none'){
            msg.style.display = 'inline';
        }else{
            msg.style.display = 'none';
        }
        //阻止事件的冒泡和默認(rèn)行為
 
        event.stopPropagation();
        event.preventDefault();
    },
 
    render: function(){
 
        return(
            <div>
                <button onClick={this.handleClick}>顯示/隱藏</button>
                <span ref="tip">message</span>
            </div>
        );
    }
});
var TestInputComponent = React.createClass({
    getInitialState: function(){
        return{
            inputContent: ' '
        }
    },
 
    changeHandler:function(event){
 
      //改變state的值
 
        this.setState({
            inputContent:event,target.value
        });
 
        event.preventDefault();
        event.stopPropagation();
    },
 
    render: function(){
 
        return(
            <div>
                <input type="text" onChange={this.changeHandler}/>
                <span>{this.state.inputContent}</span>
            </div>
        ); 
    } 
});

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

相關(guān)文章

  • React實(shí)現(xiàn)動(dòng)效彈窗組件

    React實(shí)現(xiàn)動(dòng)效彈窗組件

    最近在使用react開發(fā)項(xiàng)目,遇到這樣一個(gè)需求實(shí)現(xiàn)一個(gè)帶有動(dòng)效的 React 彈窗組件,如果不考慮動(dòng)效,很容易實(shí)現(xiàn),接下來小編通過本文給大家介紹React實(shí)現(xiàn)動(dòng)效彈窗組件的實(shí)現(xiàn)代碼,一起看看吧
    2021-06-06
  • react實(shí)現(xiàn)可播放的進(jìn)度條

    react實(shí)現(xiàn)可播放的進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了react實(shí)現(xiàn)可播放的進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 談?wù)凴eact中的Render Props模式

    談?wù)凴eact中的Render Props模式

    這篇文章主要介紹了談?wù)凴eact中的Render Props模式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • react?hooks頁(yè)面實(shí)時(shí)刷新方式(setInterval)

    react?hooks頁(yè)面實(shí)時(shí)刷新方式(setInterval)

    這篇文章主要介紹了react?hooks頁(yè)面實(shí)時(shí)刷新方式(setInterval),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 解決React報(bào)錯(cuò)React.Children.only expected to receive single React element child

    解決React報(bào)錯(cuò)React.Children.only expected to rece

    這篇文章主要為大家介紹了React報(bào)錯(cuò)React.Children.only expected to receive single React element child分析解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 解決React報(bào)錯(cuò)Encountered?two?children?with?the?same?key

    解決React報(bào)錯(cuò)Encountered?two?children?with?the?same?key

    這篇文章主要為大家介紹了React報(bào)錯(cuò)Encountered?two?children?with?the?same?key解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 淺談react新舊生命周期鉤子

    淺談react新舊生命周期鉤子

    所謂的生命周期就是指某個(gè)事物從開始到結(jié)束的各個(gè)階段,本文主要介紹了淺談react新舊生命周期鉤子,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 詳解React的組件通訊

    詳解React的組件通訊

    這篇文章主要介紹了詳解react組件通訊方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • React如何創(chuàng)建組件

    React如何創(chuàng)建組件

    本文我們將介紹 React中組件的類別,以及如何創(chuàng)建和使用組件。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • React Fiber中面試官最關(guān)心的技術(shù)話題

    React Fiber中面試官最關(guān)心的技術(shù)話題

    這篇文章主要為大家介紹了React Fiber中面試官最關(guān)心的技術(shù)話題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06

最新評(píng)論