網站首頁 編程語言 正文
前言
公司項目需要使用react,而函數式組件也是官方比較推薦的!!!所以學習hooks是很重要的。
一、什么是函數式組件
純函數組件有以下特點:
- 沒有狀態
- 沒有生命周期
- 沒有 this
因存在如上特點,使得純函數組件只能做UI展示的功能, 涉及到狀態的管理與切換就不得不用到類組件或者redux。 但因為簡單的頁面也是用類組件,同時要繼承一個React實例,使得代碼會顯得很重。
以前我們可以使用class來聲明一個組件,其實使用function也可以定義一個組件:
創建 App1.js :
import React from 'react'
function App1(){
return (
<div>
<h1>函數式組件</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 中調用:
import ReactDOM from 'react-dom'
import App from './App1'
ReactDOM.render(
<App />,
document.getElementById('root')
)
二、useState
useState讓函數組件有了state狀態,可以對狀態數據進行讀寫操作
語法:const [變量名,修改變量的方法名] = React.useState(初始值)
修改變量的方法名(setXxx)有兩種寫法:
setXxx(newValue):參數為非函數值,直接指定新的狀態值,內部用器覆蓋原來的狀態值。
setXxx(value => newValue):參數為函數,接收原本的狀態值,返回新的狀態值 ,內部用器覆蓋原來的狀態值。
現在我們改成函數式編程實現累加案例:
// 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
相關推薦
- 2022-10-27 python圖像填充與裁剪/resize的實現代碼_python
- 2022-12-06 Docker基礎和常用命令詳解_docker
- 2022-10-05 VScode中C++頭文件問題的終極解決方法詳析_C 語言
- 2022-10-09 淺談C++中各種不同意義的new和delete的使用_C 語言
- 2022-08-19 android九宮格鎖屏控件使用詳解_Android
- 2022-10-01 iOS實現UIButton的拖拽功能_IOS
- 2023-02-15 C++在vscode中的多文件編程問題解讀_C 語言
- 2022-06-14 python?多線程threading程序詳情_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支