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

阿里云网站建设初衷品牌建设需打持久战

阿里云网站建设初衷,品牌建设需打持久战,望牛墩镇仿做网站,wordpress注册插件中文版在构建 React 后台管理系统时,使用标签页的方式展示路由是一种高效且用户友好的设计模式。这种实现方式通常允许用户在多个页面之间快速切换,并保留页面的状态,类似于浏览器的多标签页功能。 需求分析 1.动态标签页:根据用户的导…

在构建 React 后台管理系统时,使用标签页的方式展示路由是一种高效且用户友好的设计模式。这种实现方式通常允许用户在多个页面之间快速切换,并保留页面的状态,类似于浏览器的多标签页功能。

需求分析
1.动态标签页:根据用户的导航行为动态创建标签页。
2.标签页状态管理:需要管理哪些标签页已经打开,当前激活的标签页,以及关闭某些标签页的功能。
3.路由集成:每个标签页与 react-router-dom 的路由结合,切换标签页时也同步更新路由。

示例实现
以下是基于 React 和 react-router-dom 的后台管理系统,支持动态标签页和路由集成。

  1. 创建项目安装必要依赖
    确保安装了以下依赖:
npm create vite
npm install
npm install react-router-dom antd
  1. 完整代码实现
import React, { useState } from 'react'
import { BrowserRouter as Router, Routes, Route, useNavigate, useLocation } from 'react-router-dom'
import { Tabs, Layout, Menu } from 'antd'const { Header, Content } = Layout
const { TabPane } = Tabs// 模拟的页面组件
const Dashboard = () => <div>仪表盘内容</div>
const UserList = () => <div>用户列表内容</div>
const Settings = () => <div>系统设置内容</div>// 标签页的默认配置
const defaultTabs = [{ key: '/dashboard', label: '仪表盘', component: <Dashboard /> }]const AppLayout = () => {const navigate = useNavigate()const location = useLocation()// 标签页状态const [tabs, setTabs] = useState(defaultTabs)const [activeTabKey, setActiveTabKey] = useState(defaultTabs[0].key)// 动态添加标签页const addTab = (key, label, component) => {if (!tabs.some(tab => tab.key === key)) {setTabs([...tabs, { key, label, component }])}setActiveTabKey(key)navigate(key)}// 关闭标签页const removeTab = targetKey => {const newTabs = tabs.filter(tab => tab.key !== targetKey)setTabs(newTabs)if (activeTabKey === targetKey) {const nextTab = newTabs[newTabs.length - 1]if (nextTab) {setActiveTabKey(nextTab.key)navigate(nextTab.key)} else {setActiveTabKey('/dashboard')navigate('/dashboard')}}}return (<Layout style={{ height: '100vh' }}><Header><Menu theme='dark' mode='horizontal' defaultSelectedKeys={['/dashboard']}><Menu.Item key='/dashboard' onClick={() => addTab('/dashboard', '仪表盘', <Dashboard />)}>仪表盘</Menu.Item><Menu.Item key='/users' onClick={() => addTab('/users', '用户列表', <UserList />)}>用户列表</Menu.Item><Menu.Item key='/settings' onClick={() => addTab('/settings', '系统设置', <Settings />)}>系统设置</Menu.Item></Menu></Header><Content style={{ padding: '16px' }}>{/* 标签页 */}<Tabstype='editable-card'onChange={key => {setActiveTabKey(key)navigate(key)}}activeKey={activeTabKey}onEdit={(targetKey, action) => {if (action === 'remove') {removeTab(targetKey)}}}>{tabs.map(tab => (<TabPane tab={tab.label} key={tab.key} closable={tab.key !== '/dashboard'}>{tab.component}</TabPane>))}</Tabs>{/* 路由 */}<Routes><Route path='/dashboard' element={<Dashboard />} /><Route path='/users' element={<UserList />} /><Route path='/settings' element={<Settings />} /></Routes></Content></Layout>)
}const App = () => (<Router><AppLayout /></Router>
)export default App

功能点说明
1.动态标签页管理

标签页通过 tabs 数组动态维护,新增时向数组添加对象,关闭时从数组中移除对象。
使用 TabPane 的 closable 属性控制是否允许关闭标签页。

2.同步路由和标签页

点击菜单或切换标签页时,更新 activeTabKey 并通过 useNavigate 同步路由。
关闭标签页时,如果关闭的是当前激活的标签页,自动切换到最后一个标签页。

3.默认标签页

默认标签页(如仪表盘)永远存在,且不可关闭。

4.路由内容展示

Routes 定义了路由和对应的页面内容,标签页中渲染的组件会与路由匹配。

5.样式优化建议

1.标签页溢出时滚动
Tabs 自带滚动支持,当标签页过多时可以左右滚动:
<Tabs type="editable-card" size="small" tabBarGutter={4} />

2.页面布局优化

添加侧边栏(Sider)用于更复杂的导航。
使用 Content 的内边距和背景色控制页面内容区域样式。

扩展功能

持久化标签页
将标签页的状态保存到 localStorage,并在页面刷新时恢复。
useEffect(() => {const savedTabs = JSON.parse(localStorage.getItem("tabs")) || defaultTabs;setTabs(savedTabs);
}, []);useEffect(() => {localStorage.setItem("tabs", JSON.stringify(tabs));
}, [tabs]);

多级路由支持

在标签页中加载嵌套路由。

权限管理

根据用户权限动态控制可见的标签页和菜单。

通过以上实现,你可以轻松构建一个支持动态标签页、路由集成的后台管理系统,并扩展为更复杂的功能。

http://www.yayakq.cn/news/328983/

相关文章:

  • 如何做好网站推广优化黄骅港属于哪个区
  • 网站代理合作三个关键词介绍自己
  • 做网站优化公司wordpress获取分类子分类所有文章
  • 中山做营销型网站大型公司办公室设计
  • 一起做玩具网站wordpress 搜索用户
  • 网页设计特效网站海口网约车资格证在哪里报名
  • 网站建设项目成本估算表网站的运作方式
  • 百度怎么创建网站泉州网站建设科技公司
  • 怎样先做网站后买域名易语言怎么做网页网站
  • 长沙 做网站网站做漏洞扫描费用
  • 众包 wordpress湛江网站制作优化
  • 深圳彩票网站开发人员wordpress音频付费插件
  • 做网站的股哥广州互联网公司
  • 合肥瑶海区寒假兼职工网站建设金沙县建设局网站
  • 对购物网站建设的建议手机网站修改
  • 网站的安全度永久8x的最新域名
  • 石家庄市建设南大街小学网站手机回收网站开发
  • 北京网站建设公司分形广州企业网站定制
  • 学摄影的网站有哪些无线ap组网方案
  • 网站系统分析的主要任务包括知名网站开发哪家好
  • 在线视频播放网站建设浙江建筑信息网港
  • 创建网站的方案网站开发设计合同
  • 典型网站开发的一般流程网页分析从哪些方面
  • 用四字成语做网站域名好吗公司网站制作第一步是什么
  • 南通做公司网站wordpress与微信公众号
  • 公司制作网站怎么做自己建设房源网站
  • 一个云主机 多个网站有没有好的做海报的网站
  • 做黄金比较专业的网站wordpress 子目录
  • 网站logo是指1920的做网站做多大
  • 衡阳网站设计ss0734做火影网站背景图