Celeste 技術儲藏室

成長就是一種修練
願你我還能是最初的那個少年!

0%

結合 react 的 redux 使用方法

  1. 下載 npm i react-redux

  2. 透過 react-redux 中的 Provider 注入 Redux 的狀態給組件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // ...引入其他模組
    import { Provider } from "react-redux";
    import store from "./01.redux/store";
    /* 1.透過 Provider 將 redux 儲存庫數據傳入到組件中 */
    root.render(
    <StrictMode>
    <Provider store={store}>
    <RouterProvider router={router} />
    </Provider>
    </StrictMode>
    );
    閱讀全文 »

本文使用的是 Redux Toolkit。

架構模式

作用: 透過一個單獨的 state 對象保存整個應用的狀態,這個 state 對象不能被直接修改,而是當某些數據發生變化後,透過 actions 及 reducers 來創建新的對象。

流程:

閱讀全文 »

路由驗證及攔截的快速方法

在需要登入的頁面中,需要先判斷是否已經被授權,有授權才可以進入指定頁面。

React-Router 提供了一個更簡便的方法,再進入該該路由前,先透過 loader 方法來進行驗證,而後透過 errorElement 來指定驗證不成功會進入哪個頁面。

https://reactrouter.com/en/main/route/error-element

測試用範例(使用 localStorage 做驗證測試)
假設進入 /home/message 要經過驗證,驗證不成功則返回 /login 頁面

閱讀全文 »

React Router v6

標籤

路由定義: 根據不同的 url 地址顯示不同內容或頁面。

基礎使用:

  1. 下載: 在專案中下載 react-router-dom 工具

    1
    npm i react-router-dom

    補充: react-router-dom 是包含了 react-router (路由核心庫),並添加一洩專用於 DOM 的組件。

  2. 實現最小化 Demo,實現 Home 與 About 頁面的切換

    閱讀全文 »

Function Component 不存在生命週期,這也是為什麼 React 開始推薦使用函數組件的原因,可以減少學習成本。

useEffect()

作用: 為函數組件處理副作用。

副作用定義: 副作用是相對主作用來說的,一個函數除了主作用,其他的都是副作用。對 React 而言,主作用就是根據數據(state/props)渲染頁面,除此都是副作用。

常見副作用:

  1. 手動修改 DOM
  2. localStorage 操作
  3. 數據請求 AJAX 發送

React 官方文檔:
每次 render 後都會執行 useEffect 嗎? 是的!預設情況下,它在第一個 render 和隨後每一個更新之後執行。你可能會發現把 effect 想成發生在「render 之後」更為容易,而不是考慮「mount」和「更新」。 React 保證 DOM 在執行 effect 時已被更新
每次重新 render 時,我們都會安排一個 different effect 來替代上一個。在某種程度上,這使 effect 的行為更像是 render 結果的一部分 — 每個 effect 都「屬於」特定的 render (useEffect 會在應用下一個 effect 之前,清除之前的 effect)。

閱讀全文 »