返回
React 16.x 折腾记(四):侧边栏联动 Tab 菜单增强版(结合 Mobx)
前端
2023-12-24 17:36:19
引言:
在现代 Web 开发中,React 和 Mobx 是非常流行的前端框架和状态管理库,它们可以帮助我们构建出更强大、更灵活的 Web 应用。本文将介绍如何使用 React 16.x 和 Mobx 来构建一个侧边栏联动 Tab 菜单,并通过 Mobx 管理状态,实现页面的路由管理和状态管理。
一、环境搭建:
- 安装 React 16.x 和 Mobx:
npm install react react-dom mobx mobx-react
- 创建 React 项目:
create-react-app my-react-app
- 导入必要的库:
在项目根目录下的 index.js 文件中,导入 React、ReactDOM、Mobx 和 MobxReact:
import React from 'react';
import ReactDOM from 'react-dom';
import { observable, action } from 'mobx';
import { Provider } from 'mobx-react';
- 创建 Mobx Store:
在项目根目录下创建一个 store.js 文件,并创建 Mobx Store:
class Store {
@observable tabIndex = 0;
@action
setTabIndex(index) {
this.tabIndex = index;
}
}
const store = new Store();
- 创建 React 组件:
在项目根目录下创建一个 App.js 文件,并创建 React 组件:
import React from 'react';
import { Provider } from 'mobx-react';
import store from './store';
const App = () => {
return (
<Provider store={store}>
<div>
{/* 侧边栏 */}
<Sidebar />
{/* Tab 菜单 */}
<Tabs />
</div>
</Provider>
);
};
export default App;
二、实现侧边栏联动 Tab 菜单:
- 创建侧边栏组件:
在项目根目录下创建一个 Sidebar.js 文件,并创建侧边栏组件:
import React, { useContext } from 'react';
import { observer } from 'mobx-react';
import store from './store';
const Sidebar = observer(() => {
const { tabIndex, setTabIndex } = useContext(store);
return (
<ul>
<li onClick={() => setTabIndex(0)}>Tab 1</li>
<li onClick={() => setTabIndex(1)}>Tab 2</li>
<li onClick={() => setTabIndex(2)}>Tab 3</li>
</ul>
);
});
export default Sidebar;
- 创建 Tab 菜单组件:
在项目根目录下创建一个 Tabs.js 文件,并创建 Tab 菜单组件:
import React, { useContext } from 'react';
import { observer } from 'mobx-react';
import store from './store';
const Tabs = observer(() => {
const { tabIndex } = useContext(store);
return (
<div>
<TabContent index={tabIndex} />
</div>
);
});
export default Tabs;
- 创建 Tab 内容组件:
在项目根目录下创建一个 TabContent.js 文件,并创建 Tab 内容组件:
import React from 'react';
const TabContent = ({ index }) => {
switch (index) {
case 0:
return <div>Tab 1 内容</div>;
case 1:
return <div>Tab 2 内容</div>;
case 2:
return <div>Tab 3 内容</div>;
default:
return null;
}
};
export default TabContent;
三、实现路由管理和状态管理:
- 安装 React Router:
npm install react-router-dom
- 导入 React Router:
在项目根目录下的 index.js 文件中,导入 React Router:
import { BrowserRouter as Router, Route, Link } from 'react-router-dom';
- 创建路由配置:
在项目根目录下创建一个 router.js 文件,并创建路由配置:
import React from 'react';
import { BrowserRouter as Router, Route, Link } from 'react-router-dom';
import App from './App';
const RouterConfig = () => {
return (
<Router>
<Route path="/" component={App} />
</Router>
);
};
export default RouterConfig;
- 修改 index.js 文件:
在项目根目录下的 index.js 文件中,修改代码如下:
import React from 'react';
import ReactDOM from 'react-dom';
import { observable, action } from 'mobx';
import { Provider } from 'mobx-react';
import RouterConfig from './router';
ReactDOM.render(
<Provider store={store}>
<RouterConfig />
</Provider>,
document.getElementById('root')
);
结语:
本文详细介绍了如何使用 React 16.x 和 Mobx 来构建一个侧边栏联动 Tab 菜单,并通过 Mobx 管理状态,实现页面的路由管理和状态管理。通过本文的学习,读者可以了解到如何使用 Mobx 来管理复杂的状态,以及如何使用 React Router 来实现页面的路由管理。希望本文能够对读者的学习和工作有所帮助。