React函數(shù)式組件Hook中的useState函數(shù)的詳細(xì)解析
前言
公司項(xiàng)目需要使用react,而函數(shù)式組件也是官方比較推薦的?。。∷詫W(xué)習(xí)hooks是很重要的。
一、什么是函數(shù)式組件
純函數(shù)組件有以下特點(diǎn):
- 沒(méi)有狀態(tài)
- 沒(méi)有生命周期
- 沒(méi)有 this
因存在如上特點(diǎn),使得純函數(shù)組件只能做UI展示的功能, 涉及到狀態(tài)的管理與切換就不得不用到類(lèi)組件或者redux。 但因?yàn)楹?jiǎn)單的頁(yè)面也是用類(lèi)組件,同時(shí)要繼承一個(gè)React實(shí)例,使得代碼會(huì)顯得很重。
以前我們可以使用class來(lái)聲明一個(gè)組件,其實(shí)使用function也可以定義一個(gè)組件:
創(chuàng)建 App1.js :
import React from 'react'
function App1(){
return (
<div>
<h1>函數(shù)式組件</h1>
</div>
)
}
export default App1;備注:
在vscode中,如果安裝過(guò) 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)行讀寫(xiě)操作
語(yǔ)法:const [變量名,修改變量的方法名] = React.useState(初始值)
修改變量的方法名(setXxx)有兩種寫(xiě)法:
setXxx(newValue):參數(shù)為非函數(shù)值,直接指定新的狀態(tài)值,內(nèi)部用器覆蓋原來(lái)的狀態(tài)值。
setXxx(value => newValue):參數(shù)為函數(shù),接收原本的狀態(tài)值,返回新的狀態(tài)值 ,內(nèi)部用器覆蓋原來(lá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如何使用axios請(qǐng)求數(shù)據(jù)并把數(shù)據(jù)渲染到組件
這篇文章主要介紹了React如何使用axios請(qǐng)求數(shù)據(jù)并把數(shù)據(jù)渲染到組件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
React native ListView 增加頂部下拉刷新和底下點(diǎn)擊刷新示例
這篇文章主要介紹了React native ListView 增加頂部下拉刷新和底下點(diǎn)擊刷新示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
使用React hook實(shí)現(xiàn)remember me功能
相信大家在使用 React 寫(xiě)頁(yè)面的時(shí)候都遇到過(guò)完成 Remember me 的需求吧!本文就將這個(gè)需求封裝在一個(gè) React hook 中以供后續(xù)的使用,覺(jué)得有用的同學(xué)可以收藏起來(lái)以備不時(shí)之需,感興趣的小伙伴跟著小編一起來(lái)看看吧2024-04-04
React實(shí)現(xiàn)點(diǎn)擊刪除列表中對(duì)應(yīng)項(xiàng)
本文主要介紹了React 點(diǎn)擊刪除列表中對(duì)應(yīng)項(xiàng)的方法。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01
關(guān)于React狀態(tài)管理的三個(gè)規(guī)則總結(jié)
隨著 JavaScript 單頁(yè)應(yīng)用開(kāi)發(fā)日趨復(fù)雜,JavaScript 需要管理比任何時(shí)候都要多的 state (狀態(tài)),這篇文章主要給大家介紹了關(guān)于React狀態(tài)管理的三個(gè)規(guī)則,需要的朋友可以參考下2021-07-07
react使用mobx封裝管理用戶(hù)登錄的store示例詳解
這篇文章主要介紹了react基于mobx封裝管理用戶(hù)登錄的store,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06

