Redux-Toolkit | Next.js 13

>> 發文日期 : 2023/7/26

> 說明

在Next.js 13裡,Redux-Toolkit的使用方式有些許不同,這裡記錄一下。


> 1. 建立Slice管理State

這次的範例是建立一個Dark Mode模式的控制,所以我先建立一個slice來管理這個state,並加入一個toggleDarkMode的reducers,用來切換Dark Mode狀態。

這邊可以特別注意一個細節,最上方的"use client",這是因為我們要在client端使用Redux的功能。


> 2. Store儲存所有的reducers

接著我們要建立一個store,並將所有的reducers都加入進去。


> 3. 建立Redux Provider

接著我們要建立一個Redux的Provider,並將store加入進去,並將Layout的children包在Provider裡。


> 4. 在components裡使用Redux的功能

當使用Redux的功能時,必須要在client component中使用,所以在component的拆解上需要特別規劃Redux應用如何與server component分割。

可以看到這邊我們使用了useSelector來取得darkMode的state,使用useDispatch來dispatch,並且使用了toggleDarkMode這個action去買遍state的值。