当前位置: 首页 > news >正文

神农架网站建设公司南阳网站建设多少钱

神农架网站建设公司,南阳网站建设多少钱,文字生成图片,.net网站模板在 Next 14 的 appRouter 模式中接入 React-Redux 说明 Next.js 版本升级到 14 后#xff0c;相比 13 版本是一个改动很大的大版本升级#xff0c;很多概念或者使用方式 13 版本都有较大的区别#xff0c;因此这里记录一些学习 14 版本的 Next.js 的心得体会或者问题。因为…在 Next 14 的 appRouter 模式中接入 React-Redux 说明 Next.js 版本升级到 14 后相比 13 版本是一个改动很大的大版本升级很多概念或者使用方式 13 版本都有较大的区别因此这里记录一些学习 14 版本的 Next.js 的心得体会或者问题。因为我这边构建项目选择的是 Next.js 新的路由模式 App Router因此该文档是基于 App Router 路由模式的。 安装依赖 根据 react-redux 官方文档 的说明使用如下面命令安装依赖 pnpm add reduxjs/toolkit react-redux创建 store 模块 我们以创建一个 counterSlice 举例 在项目根目录或者 app 目录或者其他目录创建 store 目录以及 react-redux 的主文件 store.ts然后创建 /storemodules/counterSlice.ts并写入如下代码 //counterSlice.jsxuse client; //this is a client side componentimport { createSlice } from reduxjs/toolkit; import { RootState } from ../store;const initialState {value: 0, };export const counterSlice createSlice({name: counter,initialState,reducers: {increment: (state) {state.value 1;},decrement: (state) {state.value - 1;},incrementByAmount: (state, action) {state.value action.payload;},}, });export const { increment, decrement, incrementByAmount } counterSlice.actions;export default counterSlice.reducer;export const selectCounter (state: RootState) state.counter.value;**注意**这里需要注意在 next 中redux 需要作为客户端渲染的模块因此 store 模块的文件头部都需要加上使用客户端渲染的注解 use client;。 然后在 store.ts 里面写入如下代码 //store.jsxuse client; import { combineReducers, configureStore } from reduxjs/toolkit; import counterReducer from ./modules/counterSlice; import { Provider } from react-redux;const rootReducer combineReducers({counter: counterReducer,//add all your reducers here });export const store configureStore({reducer: rootReducer, });export function ReduxProvider({ children }) {return Provider store{store}{children}/Provider; }export type RootState ReturnTypetypeof store.getState;export type AppDispatch typeof store.dispatch;将 ReduxProvider作为组件抛出去。 使用定义好的 store 模块 注册 Provider 我们可以在全局 layout 里面注册 Provider 这样能保证我们的所有的客户端组件都能使用 Redux: import type { Metadata } from next; import { Inter } from next/font/google; import ThemeRegistry from /app/components/themeRegistry/ThemeRegistry; import HeaderBar from /app/components/layout/HeaderBar; import { ReduxProvider } from /app/store/store; import { useEffect } from react;const inter Inter({ subsets: [latin] });export const metadata: Metadata {title: Create Next App11,description: Generated by create next app, };function RootLayout({ children }: { children: React.ReactNode }) {return (html langenbody className{inter.className}ReduxProviderThemeRegistryHeaderBar /{children}/ThemeRegistry/ReduxProvider/body/html); }// export default wrapper.withRedux(RootLayout); export default RootLayout;组件中使用 redux 之前已经说了redux 在 next.js 中只能是作为客户端渲染模块使用所以我们不能再任何的 page.tsx 路由页面组件中使用除非这个路由页面有客户端渲染组件注解use client;然而这种情况可能并不多见。因此对于需要使用 redux 的地方我们需要这块儿逻辑封装成客户端渲染的组件比如 use client; import {decrement,increment,selectCounter, } from /app/store/modules/counterSlice; import { AppDispatch } from /app/store/store; import { Box, Button, Typography } from mui/material; import { useDispatch, useSelector } from react-redux;export default function CounterControl() {const counter useSelector(selectCounter);const dispatch useDispatchAppDispatch();const handleChangeCounter (type: ADD | MINUS) {dispatch(type ADD ? increment() : decrement());};return (BoxTypography varianth1{counter}/TypographyBoxButton variantoutlined onClick{() handleChangeCounter(ADD)}ADD/ButtonButtonvariantoutlinedonClick{() handleChangeCounter(MINUS)}sx{{ ml: 2 }}MINUS/Button/Box/Box); }这样子我们就可以在任意组件包括路由组件 page.tsx里面使用封装的这个 CounterControl 组件了 import { Metadata } from next; import { Button } from mui/material; import NavigateButton from /app/components/tools/NavigateButton; import CounterControl from ../components/counter/CounterControl;export const metadata: Metadata {title: Users page,description: Generated by create next app, };export default function UsersPage() {return (divCounterControl /Button sx{{ mx: 1 }} variantcontainedHellow Mui/ButtonNavigateButton destination/ variantcontained sx{{ mx: 2 }}back/NavigateButtonh2This is the User Index page/h2/div); }以上就完成了在 Next.js 14 的 App Router 路由模式中接入 react-redux 的全过程。
http://www.hkea.cn/news/14537191/

相关文章:

  • 河南网站建设详细流程有哪些做室内设计好用的网站
  • 微信 网站提成方案点做版式设计网站
  • 织梦网站首页内容修改WordPress文章修改样式
  • 如何建设学校的微网站首页wordpress影视主题52破解
  • 新八建设集团有限公司网站北京建设网站哪家好
  • 网站首页页面设计文章wordpress
  • 石家庄做网站汉狮网络哈尔滨快速建站点击查看
  • 快站心动小程序官网汕头seo排名收费
  • 微信长图的免费模板网站微官网免费制作平台
  • 福永网站建设公司哪家好网络营销策划的主要特点
  • 个人网站建设素材深圳seo网站优化公司
  • 建网站用html基于php mysql的网站开发
  • 银行网站建设中网站等比例缩放设计
  • 做素材类的网站赚钱吗网站托管就业
  • 北京海淀网站建设公司wordpress 挣钱
  • 建设网站需要的工具公司网站建设图片素材怎么找
  • 公司网站制作商做外围网站犯法吗
  • 泰州网站建设优化如何做响应式网站视频教程
  • 网站建设公司业务员安徽网站建设公司
  • 大良营销网站建设效果免费行情的软件大全下载
  • 网站访客qq获取系统 报价文明网站建设培训体会
  • 十大免费建站appwordpress页面显示什么意思
  • 网站友情链接宣城老品牌网站建设
  • 做商城网站买多大的空间谷歌推广seo
  • 无锡营销型网站建站phpcms 外贸网站模板
  • 网站建设项目分期找人做一个网站要多少钱
  • 建立个人网站主题东方商易网站开发
  • wordpress 仿站教程wordpress登录跳转
  • 域名 备案号 网站的关系做植物网站
  • 深圳龙岗住房和建设局网站官网上海工商网一窗通