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

React 組件中的state和setState()你知道多少

 更新時間:2022年03月18日 14:54:01   作者:cs_upupo  
這篇文章主要為大家詳細介紹了React組件中的state和setState(),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

state的基本使用

狀態(tài)(state)即數據,是組件內部的私有數據,只能在組件內部使用

state的值是對象,可以通過this.state來獲取狀態(tài)。

setState()修改狀態(tài)

狀態(tài)是可變的,可以通過this.setState({要修改的數據})來改變狀態(tài)

注意:跟vue語法不同,不要直接修改state中的值,這時錯誤的!

//正確
 this.setState({
     count:this.state.count+1
 })
//錯誤
this.state.count+=1

最后結合以上內容,寫了一個簡單的累加器,但是在此之前,我們需要解決this在自定義的方法中的指向問題,否則this指向會為undefined,我們一般希望this指向組件實例。

解決方法:

1.箭頭函數

 利用箭頭函數自身不綁定this的特點

class App extends React.Component{
    state={
       count:0, 
    }
    render(){
        // 箭頭函數中的this指向外部韓靜,此處指向render()方法
        return (
            <div>
                <span>總數:{this.state.count}</span>
                <button onClick={()=>{
                    this.setState({
                        count:this.state.count+1
                    })
                }}>點擊+1</button>
            </div>
        )
    }
}
ReactDOM.render(<App/>,document.getElementById('root'));

但是這種方法會導致JSX語法中代碼過于繁雜,不利于表明項目結構,一般不推薦使用。

2.Function.prototype.bind()

利用ES5中的bind方法,將事件處理程序中的this與組件示例綁定到一起

class App extends React.Component{
    constructor(){
        super()//super()必須寫,這時ES6語法中class的一個要求
        //此時可將state放到constructor()中
        this.state={
            count:0, 
         }
        this.add=this.add.bind(this)//將this指向綁定到實例
    }
    //事件處理程序
    add(){
        this.setState({
            count:this.state.count+1
        })
    }
    render(){
        // 箭頭函數中的this指向外部韓靜,此處指向render()方法
        return (
            <div>
                <span>總數:{this.state.count}</span>
                <button onClick={this.add}>點擊+1</button>
            </div>
        )
    }
}
ReactDOM.render(<App/>,document.getElementById('root'));

3.class的示例方法

利用箭頭函數形式的class實例方法,此方法比較簡潔,強烈推薦

注意:該語法是實驗性語法,但是由于腳手架中babel的存在,可以直接使用

class App extends React.Component{
    state={
        count:0, 
    }
    add=()=>{
        this.setState({
            count:this.state.count+1
        })
    }
    render(){
        // 箭頭函數中的this指向外部韓靜,此處指向render()方法
        return (
            <div>
                <span>總數:{this.state.count}</span>
                <button onClick={this.add}>點擊+1</button>
            </div>
        )
    }
}
ReactDOM.render(<App/>,document.getElementById('root'));

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!   

相關文章

  • React使用refs操作DOM方法詳解

    React使用refs操作DOM方法詳解

    React核心就在于虛擬DOM,也就是在React中不總是直接操作頁面真實的DOM元素,并且結合Diffing算法,可以做到最小化頁面重繪,有些時候不可避免的我們需要一種方法可以操作我們定義的元素標簽,并作出對應的修改。在React中提供了一種訪問DOM節(jié)點的方式,也就是這里的refs
    2022-11-11
  • React之如何在Suspense中優(yōu)雅地請求數據

    React之如何在Suspense中優(yōu)雅地請求數據

    Suspense 是 React 中的一個組件,直譯過來有懸掛的意思,能夠將其包裹的異步組件掛起,直到組件加載完成后再渲染,本文詳細介紹了如何在Suspense中請求數據,感興趣的小伙伴可以參考閱讀本文
    2023-04-04
  • React配置Redux并結合本地存儲設置token方式

    React配置Redux并結合本地存儲設置token方式

    這篇文章主要介紹了React配置Redux并結合本地存儲設置token方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • React組件之多選Checkbox實例

    React組件之多選Checkbox實例

    這篇文章主要介紹了React組件之多選Checkbox實例,具有很好的參考價值,希望對大家有所幫助,
    2023-10-10
  • 在React中用canvas對圖片標注的實現

    在React中用canvas對圖片標注的實現

    本文主要介紹了在React中用canvas對圖片標注的實現 ,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • React+Redux實現簡單的待辦事項列表ToDoList

    React+Redux實現簡單的待辦事項列表ToDoList

    這篇文章主要為大家詳細介紹了React+Redux實現簡單的待辦事項列表ToDoList,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • React forwardRef的使用方法及注意點

    React forwardRef的使用方法及注意點

    React.forwardRef的API中ref必須指向dom元素而不是React組件,通過一段示例代碼給大家介紹了React forwardRef使用方法及注意點還有一些特殊情況分析,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • React組件的用法概述

    React組件的用法概述

    React組件用來實現局部功能效果的代碼和資源的集合(html/css/js/image等等),這篇文章主要介紹了React組件的用法和理解,需要的朋友可以參考下
    2023-02-02
  • 一看就懂的ReactJs基礎入門教程-精華版

    一看就懂的ReactJs基礎入門教程-精華版

    現在最熱門的前端框架有AngularJS、React、Bootstrap等。自從接觸了ReactJS,ReactJs的虛擬DOM(Virtual DOM)和組件化的開發(fā)深深的吸引了我,下面來跟我一起領略ReactJs的風采吧~~ 文章有點長,耐心讀完,你會有很大收獲哦
    2021-04-04
  • React SSR樣式及SEO的實踐

    React SSR樣式及SEO的實踐

    這篇文章主要介紹了React SSR樣式及SEO的實踐,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10

最新評論