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

湖北省建设厅官方网站文件wordpress后台登入地址

湖北省建设厅官方网站文件,wordpress后台登入地址,哈尔滨网站建设制作哪家好,电子商务网站建设考试重点前言 本文将引导开发者从零基础开始#xff0c;运用vite、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈#xff0c;构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导#xff0c;文章旨在为开发者揭示如何利用这些技术…前言 本文将引导开发者从零基础开始运用vite、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导文章旨在为开发者揭示如何利用这些技术工具从项目构思到最终实现的全过程提供清晰的开发思路和实用的技术应用技巧。 项目gitee地址lbking666666/enqi-admin 本系列文章 使用vitereacttsAnt Design开发后台管理项目一使用vitereacttsAnt Design开发后台管理项目二使用vitereacttsAnt Design开发后台管理项目三使用vitereacttsAnt Design开发后台管理项目四 使用redux 上一章布局组件拆分前组件侧边栏和头部需要有交互根据一个响应式的变量collapsed来进行交互的目前已经把这两部分拆分到了两个子组件header.tsx和sider.tsx中此时需要引入redux来对状态进行管理。 引入redux和 reduxjs/toolkit # 如果你使用 npm:npm install react-redux reduxjs/toolkit -S# 或者你使用 Yarn: yarn add react-redux reduxjs/toolkit 为什么使用 Redux Toolkit Redux Toolkit 是官方推荐的编写 Redux 逻辑的方法。它围绕 Redux 核心并包含我们认为对于构建 Redux 应用必不可少的软件包和功能。Redux Toolkit 简化了大多数 Redux 任务防止了常见错误并使编写 Redux 应用程序更加容易。 无论你是一个想要开发第一个 Redux 应用的新手还是想要简化已有应用经验老道的老手Redux Toolkit 都能帮你写出更好的 Redux 代码。 创建store文件 首先在src文件夹下创建store文件夹新建一个index.ts文件 //store/index.ts import { configureStore } from reduxjs/toolkit; //处理eslint报错 /* eslint-disable typescript-eslint/no-unused-vars */ const store configureStore({reducer: {}, });// 从 store 本身推断 RootState 和 AppDispatch 类型 export type RootState ReturnTypetypeof store.getState; // 推断类型{posts: PostsState, comments: CommentsState, users: UsersState} export type AppDispatch typeof store.dispatch;export default store; 创建reducer 在store文件夹下新建reducers文件夹新增一个文件global.ts //global.ts import { createSlice } from reduxjs/toolkit; import type { RootState } from /store/index.ts;// 定义初始 state 的类型 interface GlobalState {collapsed: boolean; } // 使用该类型定义初始 state const initialState: GlobalState {collapsed: false }; // 创建 slice export const globalSlice createSlice({name: global,// 名称initialState,// 初始 statereducers: {// 定义 reducer 函数该函数接受 state 和 action 作为参数setCollapsed: (state) {// 更新 statestate.collapsed !state.collapsed;},}, });// 为每个 case reducer 函数生成 Action creators export const { setCollapsed } globalSlice.actions; // selectors 等其他代码可以使用导入的 RootState 类型 export const selectCollapsed (state: RootState) state.global.collapsed; // 导出 reducer export default globalSlice.reducer;使用 Hooks 类型 尽管你可以将 RootState 和 AppDispatch 类型导入每个组件, 更好的方式是创建 useDispatch 和 useSelector 钩子的类型定义以便在你的应用程序中使用 对于 useSelector 它不需要你每次输入(state: RootState)对于 useDispatch 默认的 Dispatch 类型不知道 thunk 。为了正确调度 thunk 你需要使用 store 中包含 thunk 中间件类型的特定自定义 AppDispatch 类型并将其与 useDispatch 一起使用。添加一个预先输入的 useDispatch 钩子可以防止你忘记在需要的地方导入 AppDispatch。 由于这些是实际变量而不是类型因此将它们定义在单独的文件中很重要而不是 store 设置文件。这允许你将它们导入到需要使用挂钩的任何组件文件中并避免潜在的循环导入依赖问题。 定义 Hooks 类型 在src文件夹下新增hooks文件夹新增文件UseGlobal.hooks.ts //UseGlobal.hooks import { TypedUseSelectorHook, useDispatch, useSelector } from react-redux; import type { RootState, AppDispatch } from /store/index;// 在整个应用程序中使用而不是简单的 useDispatch 和 useSelector export const useAppDispatch: () AppDispatch useDispatch; export const useAppSelector: TypedUseSelectorHookRootState useSelector; 引入globalReducer 修改store文件夹下的index.ts //store/index.tsimport { configureStore } from reduxjs/toolkit; import globalReducer from ./reducers/global; //处理eslint报错 /* eslint-disable typescript-eslint/no-unused-vars */ const store configureStore({reducer: {global: globalReducer,}, });// 从 store 本身推断 RootState 和 AppDispatch 类型 export type RootState ReturnTypetypeof store.getState; // 推断类型{posts: PostsState, comments: CommentsState, users: UsersState} export type AppDispatch typeof store.dispatch;export default store; 在组件中使用 上一章中的左侧组件和头部组件中有一个响应式变量collapsed现在可以使用redux状态来处理根据Ant Design的代码和组件拆分分析两个组件都需要使用这个collapsed状态所以放在layout文件夹下的index.tsx中获取当前的collapsed值然后通过给组件传参的形式同步两个组件的状态 1.布局组件改造 修改layout文件夹下的index.tsx内容 //layout/index.tsx import React from react; import { Layout } from antd; import { useAppSelector} from /hooks/UseGlobal.hooks; import { selectCollapsed } from /store/reducers/global; import AppHeader from ./header; import AppSider from ./sider; import AppMain from ./main;const App: React.FC () {// 获取全局状态 collapsed 可以使用以下两种方式中的一种//const collapsed:boolean useAppSelector((state) state.global.collapsed);const collapsed: boolean useAppSelector(selectCollapsed);return (Layout classNameapp-layout AppSider collapsed{collapsed} /LayoutAppHeader collapsed{collapsed} /AppMain //Layout/Layout); };export default App;2.侧边组件改造 修改layout文件夹下的sider.tsx //layout/sider.tsx import React from react; import {UploadOutlined,UserOutlined,VideoCameraOutlined, } from ant-design/icons; import { Layout, Menu } from antd; const { Sider } Layout;interface AppSiderProps {collapsed: boolean; } const AppSider: React.FCAppSiderProps ({ collapsed }) {return (Sider trigger{null} collapsible collapsed{collapsed}div classNamedemo-logo-vertical /MenuthemedarkmodeinlinedefaultSelectedKeys{[1]}items{[{key: 1,icon: UserOutlined /,label: nav 1,},{key: 2,icon: VideoCameraOutlined /,label: nav 2,},{key: 3,icon: UploadOutlined /,label: nav 3,},]}//Sider); }; export default AppSider;3.头部组件改造 修改layout文件夹下的header.tsx //layout/header.tsx import React from react; import { Button, Layout, theme } from antd; import { MenuFoldOutlined, MenuUnfoldOutlined } from ant-design/icons; const { Header } Layout; interface AppSiderProps {collapsed: boolean; } const AppHeader: React.FCAppSiderProps ({ collapsed }) {const {token: { colorBgContainer },} theme.useToken();return (Header style{{ padding: 0, background: colorBgContainer }}Buttontypetexticon{collapsed ? MenuUnfoldOutlined / : MenuFoldOutlined /}style{{fontSize: 16px,width: 64,height: 64,}}//Header); }; export default AppHeader;4.添加事件 如上图所示点击红框的按钮需要做到伸缩左侧的侧边栏固需要在这里添加事件 代码如下 //layout/header.tsx import React from react; import { Button, Layout, theme } from antd; import { MenuFoldOutlined, MenuUnfoldOutlined } from ant-design/icons; import { useAppDispatch } from /hooks/UseGlobal.hooks; import { setCollapsed } from /store/reducers/global; const { Header } Layout; interface AppSiderProps {collapsed: boolean; } const AppHeader: React.FCAppSiderProps ({ collapsed }) {const {token: { colorBgContainer },} theme.useToken();const dispatch useAppDispatch();const handleCollapsed () {//更新全局状态 collapseddispatch(setCollapsed());};return (Header style{{ padding: 0, background: colorBgContainer }}Buttontypetexticon{collapsed ? MenuUnfoldOutlined / : MenuFoldOutlined /}style{{fontSize: 16px,width: 64,height: 64,}}onClick{handleCollapsed}//Header); }; export default AppHeader;查看效果点击按钮左侧边栏可以伸缩 后续 本篇文章为项目引入了redux和怎么在项目中使用做了说明代码已经同步到了gitee仓库下一篇会丰富头部组件使用redux增加主题风格配置和左侧菜单抽离为单独组件根据不同的菜单点击进入不同组件
http://www.w-s-a.com/news/383161/

相关文章:

  • 做网站前需要做什么准备wordpress图片云储存
  • 查楼盘剩余房源的网站地方网站推广
  • 农家乐网站建设方案创意平面设计公司简介
  • 信息化建设 网站作用网络营销的形式网站营销
  • 沈阳出名网站潍坊正规建设网站
  • 计算机软件开发需要学什么沈阳网站关键字优化
  • 关于军队建设网站国内最好的wordpress主题
  • 小视频网站如何建设陪诊app开发
  • 英文网站首页优化国外手机网站源码
  • 网站建设公司如何找客户网站建设应该考虑哪些问题
  • 创新的江苏网站建设wordpress用户绑定手机
  • 自己做网赌网站网站设计者
  • 教育培训网站设计辽宁招标工程信息网
  • 韶关网站推广做网站要哪些人员
  • 建设银行网站链接开发公司与物业公司交接清单
  • 网站定位广告企业建网站有这个必要吗
  • 网站模板 商标黄冈建设工程信息网
  • 做鞋子的招聘网站有哪些微网站
  • 项目网站开发建网站 多少钱
  • wordpress做门户seo培训价格
  • 百度关键词优化软件如何wordpress站点地图优化
  • 使用cnnic证书的网站营销公司有哪些
  • 做电子杂志用什么网站如何将网站生成二维码
  • 三点水网站建设洛阳市建设厅网站
  • 哪家做网站便宜网络推广培训吧
  • 网站怎么做支付非凡软件站
  • 北京谁会做网站开发熊岳网站怎么做
  • 南阳哪有做网站公司定制网站本地企业
  • 平板上做网站的软件邀约网站怎么做请柬
  • 企业网站成品源码邯郸做网站流程