kusapi.aaa 給初入JS框架新手的React.js入門 - b05313fsldsp/web-for-kusapi GitHub Wiki
給初入JS框架新手的React.js入門 系列 : https://ithelp.ithome.com.tw/users/20116826/ironman/2278
Andy Chang (BunnyPlayGG) iT邦新手 4 級 ‧ 點數 493 國立成功大學資訊工程學系
import React, { useEffect } from "react"
'''15:10 9/9/2021 - b1 - MyScript.js <= ChartsScreen.js
URL : https://github.com/b05313fsldsp/web-for-kusapi/wiki/MyScript.js
import React, { useState, useEffect } from "react";
HINT -
useEffect(() => STUDY.a-hook-
HINT - ES6 - 箭頭函式(arrow functions)
useEffect(() => STUDY.a-hook-
useEffect( () => { history.push("/");}, [history, userInfo]);
===
a.
import React, { useEffect } from "react"
---
生命週期 - 1. - componentDidMount + 2. - componentWillUnmount + 3. - componentDidUpdate => useEffect
# React hook兩大守則
1. 只能在最外層scope宣告
2. 只能在function component或custom hook中使用
# useEffect基本語法
useEffect接收兩個參數,
第一個是一個函式,定義componentDidMount或componentDidUpdate要做什麼事,此函式的回傳值也要是一個函式,表示componentWillUnmount 要做什麼事。
第二個是一個array,裡面是定義當哪些變數被改變時,這個useEffect要重新被觸發。有點像是過去我們在componentDidUpdate寫prevState!=this.state這種感覺。
# useEffect替代純componentDidMount
第二個參數為空array時(不是省略歐),代表除了第一次以外,接下來每次re-render時,沒有任何東西的改變可以重新觸發useEffect,所以就等同於componentDidMount。
useEffect(() => {
/* 下面是 componentDidMount */
/* 上面是 componentDidMount */
}, []);
/* 第二個參數是用來限定當哪些變數被改變時useEffect要觸發 */