React函數(shù)式組件Hook中的useState函數(shù)的詳細(xì)解析
前言
公司項(xiàng)目需要使用react,而函數(shù)式組件也是官方比較推薦的!??!所以學(xué)習(xí)hooks是很重要的。
一、什么是函數(shù)式組件
純函數(shù)組件有以下特點(diǎn):
- 沒有狀態(tài)
- 沒有生命周期
- 沒有 this
因存在如上特點(diǎn),使得純函數(shù)組件只能做UI展示的功能, 涉及到狀態(tài)的管理與切換就不得不用到類組件或者redux。 但因?yàn)楹?jiǎn)單的頁面也是用類組件,同時(shí)要繼承一個(gè)React實(shí)例,使得代碼會(huì)顯得很重。
以前我們可以使用class來聲明一個(gè)組件,其實(shí)使用function也可以定義一個(gè)組件:
創(chuàng)建 App1.js :
import React from 'react' function App1(){ return ( <div> <h1>函數(shù)式組件</h1> </div> ) } export default App1;
備注:
在vscode中,如果安裝過 ES7 React/Redux/GraphQL/React-Native snippets 這個(gè)插件,即可直接使用 rfc 快捷鍵敲出以下模板:
import React from 'react'; const App = () => { return ( <div> </div> ); } export default App;
在 index.js 中調(diào)用:
import ReactDOM from 'react-dom' import App from './App1' ReactDOM.render( <App />, document.getElementById('root') )
二、useState
useState讓函數(shù)組件有了state狀態(tài),可以對(duì)狀態(tài)數(shù)據(jù)進(jìn)行讀寫操作
語法:const [變量名,修改變量的方法名] = React.useState(初始值)
修改變量的方法名(setXxx)有兩種寫法:
setXxx(newValue):參數(shù)為非函數(shù)值,直接指定新的狀態(tài)值,內(nèi)部用器覆蓋原來的狀態(tài)值。
setXxx(value => newValue):參數(shù)為函數(shù),接收原本的狀態(tài)值,返回新的狀態(tài)值 ,內(nèi)部用器覆蓋原來的狀態(tài)值。
現(xiàn)在我們改成函數(shù)式編程實(shí)現(xiàn)累加案例:
// useState就是hooks提供的一個(gè)api import React, { useState } from 'react' function App(){ // 這里useState(0)中的0,就是定義num的初始值,setNum是修改num的方法 const [num, setNum] = useState(0); return ( <div> <h2>{num}</h2> <button onClick={()=>{setNum(num+1)}}>點(diǎn)擊加1</button> </div> ) } export default App;
到此這篇關(guān)于React函數(shù)式組件Hook中的useState函數(shù)的詳細(xì)解析的文章就介紹到這了,更多相關(guān)React Hook useState函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React-redux實(shí)現(xiàn)小案例(todolist)的過程
這篇文章主要為大家詳細(xì)介紹了React-redux實(shí)現(xiàn)小案例(todolist)的過程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09詳解webpack + react + react-router 如何實(shí)現(xiàn)懶加載
這篇文章主要介紹了詳解webpack + react + react-router 如何實(shí)現(xiàn)懶加載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-11-11react中使用js實(shí)現(xiàn)頁面滾動(dòng)監(jiān)聽(推薦)
這篇文章主要介紹了react中使用js實(shí)現(xiàn)頁面滾動(dòng)監(jiān)聽,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04create-react-app使用antd按需加載的樣式無效問題的解決
這篇文章主要介紹了create-react-app使用antd按需加載的樣式無效問題的解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02React如何使用axios請(qǐng)求數(shù)據(jù)并把數(shù)據(jù)渲染到組件
這篇文章主要介紹了React如何使用axios請(qǐng)求數(shù)據(jù)并把數(shù)據(jù)渲染到組件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08React Zustand狀態(tài)管理庫(kù)的使用詳解
Zustand是一個(gè)為React和瀏覽器環(huán)境設(shè)計(jì)的輕量級(jí)狀態(tài)管理庫(kù),由Vercel開發(fā),它特點(diǎn)包括輕量級(jí)、易用性、靈活性、可組合性和性能優(yōu)化,支持多種狀態(tài)管理模式和中間件,適合中小型項(xiàng)目,Zustand還支持TypeScript,提供類型安全的支持2024-09-09react+redux的升級(jí)版todoList的實(shí)現(xiàn)
本篇文章主要介紹了react+redux的升級(jí)版todoList的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12