網(wǎng)站首頁 編程語言 正文
前言
公司項目需要使用react,而函數(shù)式組件也是官方比較推薦的!!!所以學(xué)習(xí)hooks是很重要的。
一、什么是函數(shù)式組件
純函數(shù)組件有以下特點:
- 沒有狀態(tài)
- 沒有生命周期
- 沒有 this
因存在如上特點,使得純函數(shù)組件只能做UI展示的功能, 涉及到狀態(tài)的管理與切換就不得不用到類組件或者redux。 但因為簡單的頁面也是用類組件,同時要繼承一個React實例,使得代碼會顯得很重。
以前我們可以使用class來聲明一個組件,其實使用function也可以定義一個組件:
創(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 這個插件,即可直接使用 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),可以對狀態(tài)數(shù)據(jù)進行讀寫操作
語法: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ù)式編程實現(xiàn)累加案例:
// useState就是hooks提供的一個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)}}>點擊加1</button>
</div>
)
}
export default App;
原文鏈接:https://blog.csdn.net/m0_46165586/article/details/127521886
相關(guān)推薦
- 2022-10-02 C#利用FileSystemWatcher實時監(jiān)控文件的增加,修改,重命名和刪除_C#教程
- 2022-05-04 python中的PywebIO模塊制作一個數(shù)據(jù)大屏_python
- 2024-01-10 Maven導(dǎo)入org.apache.commons.lang3.StringUtils
- 2023-07-09 TortoiseSVN速度只有幾kb,特別緩慢,解決辦法
- 2022-05-29 Android?老生常談LayoutInflater的新認知_Android
- 2022-10-18 Qt?TCP實現(xiàn)簡單通信功能_C 語言
- 2022-04-20 Docker?Compose部署Nginx的方法步驟_docker
- 2022-06-22 git工作區(qū)暫存區(qū)與版本庫基本理解及提交流程全解_其它綜合
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支