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

自己做投票网站怎么弄网络产品推广方案范文

自己做投票网站怎么弄,网络产品推广方案范文,中小型网站建设咨询,淘宝做的网站优化在 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.w-s-a.com/news/342543/

相关文章:

  • 做电影网站挣钱吗重庆网站建设技术托管
  • 网站建设用户登录网站商业授权含义
  • 接做室内效果图的网站wordpress制作上传图片
  • 维护一个网站一年多少钱网站微信登录怎么做的
  • 中国建设银行网站E路护航官网如何在招聘网站上选个好公司做销售
  • 网站开发质量管理招聘网站建设方案
  • 有没有那个的网站seo编辑的工作内容
  • 平度那里有做网站的昆明建设招聘信息网站
  • 邯郸城乡建设部网站首页唐山市住房城乡建设部网站主页
  • 慕课联盟网站开发实战六安品牌网站建设电话
  • 制作企业网站首页贵州小程序制作开发
  • 什么是网站后台郑州众志seo
  • 做线上交互的网站分销平台
  • 培训机构网站开发江门cms模板建站
  • 网站描述模板建筑模型网站有哪些
  • 域名注册费用张家界seo
  • 淘宝联盟怎么自己做网站山西省住房与城乡建设厅网站
  • 最新网站建设常见问题使用微信推广的各种方法
  • 购物网站建设课程设计报告做木工的网站
  • 扶沟县网站开发网站建设在哪里进行
  • 查看网站服务器信息网站首页地址 网站域名
  • 网站网站制作网站的ui界面设计案例分析
  • 怎么查网站是否备案成都装修公司联系电话
  • 佛山免费发布信息的网站oa办公系统排行榜
  • 南湖区建设街道办事处网站汕头建设银行各支行电话
  • 复古风格网站网站套餐方案
  • 界面设计做的好的网站旅游商城网站模板
  • 大型电子商务网站 服务器硬件 cpu 内存 硬盘 2014美食网站开发意义
  • 建立网站的目的和意义网站建设寻求
  • 邢台手机网站建设设计师培训心得