React-Router-dom@6模块化使用

简介: React-Router-dom@6模块化使用

React-Router-dom@6模块化使用

!!!多的不说,先看效果,再上代码

React-router@6路由演示

1、基本介绍

本演示案例使用vite构建的react项目

1-1、使用vite快速构建React项目

npm create vite@latest React-demo

然后选择React回车

打开项目需要npm i安装一下依赖

运行项目npm run dev

2、在router/index.jsx中

import Home from "../components/Home.jsx";
import About from "../components/About.jsx";
import {Navigate} from "react-router-dom";
import Vue from "../components/Vue.jsx";
import ReactCorse from "../components/ReactCorse.jsx";
const Router = [
    {
        path:'/',
        element: <Navigate to={'/home'}/>
    },
    {
        path: '/home',
        element:<Home/>
    },
    /**
     *  用于重定向
     *      默认显示about下的vue组件
     * */
    {
        path: '/about',
        element: <Navigate to={'/about/vue'}/>,
    },
    {
        path: '/about',
        element: <About/>,
        children:[
            {
                path:'vue',
                element: <Vue/>
            },
            {
                path: 'react',
                element: <ReactCorse/>
            }
        ]
    }
]
export default Router;

3、main.jsx中

import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.jsx'
import {BrowserRouter} from "react-router-dom";
ReactDOM.createRoot(document.getElementById('root')).render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
)

4、App,jsx中

import React from 'react';
import {useRoutes} from "react-router-dom";
import Router from "./route/index.jsx";
const App = () => {
    return (
        <>
            {useRoutes(Router)}
        </>
    );
};
export default App;

5、components/Home.jsx组件中

import React from 'react';
import {useNavigate} from "react-router-dom";
const Home = () => {
    const navigate = useNavigate()
    return (
        <div className={'Home'}>
            <h2>Home</h2>
            <button onClick={()=>navigate('/about')}>去about</button>
        </div>
    );
};
export default Home;

6、components/About.jsx组件中

import React from 'react';
import {NavLink, Outlet, useNavigate} from "react-router-dom";
import '../assets/css/About.scss'
const About = () => {
    const navigate = useNavigate()
    return (
        <div>
            <h2>About</h2>
            <button
                onClick={()=>navigate('/')}
            >返回</button>
            <div>
                <NavLink to={'vue'}>Vue</NavLink>
                <NavLink to={'react'}>React</NavLink>
            </div>
      {/*about下的二级路由视图*/}
            <Outlet/>
        </div>
    );
};
export default About;

7、components/VueCourse.jsx组件中

import React from 'react';
const VueCourse = () => {
    return (
        <div>
            <h3>Vue课程</h3>
        </div>
    );
};
export default VueCourse;

8、components/ReactCourse.jsx组件中

import React from 'react';
const ReactCourse = () => {
    return (
        <div>
            <h3>React课程</h3>
        </div>
    );
};
export default ReactCourse;
相关文章
|
6月前
|
前端开发 JavaScript 安全
【亮剑】探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式
【4月更文挑战第30天】本文探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式。文章分为三部分:首先解释了样式传递的必要性,包括模块化、主题化和动态样式以及TypeScript集成。接着介绍了内联样式的基本用法和最佳实践,展示了一个使用内联样式自定义按钮颜色的例子。最后,讨论了使用CSS模块和TypeScript接口处理复杂样式的方案,强调了它们在组织和重用样式方面的优势。结合TypeScript,确保了样式的正确性和可维护性,为开发者提供了灵活的样式管理策略。
75 0
|
6月前
|
前端开发 容器
第十八章 React中的样式模块化处理
第十八章 React中的样式模块化处理
|
前端开发
React-组件-CSS模块化
React-组件-CSS模块化
61 0
|
前端开发 JavaScript 安全
|
前端开发
react笔记之css-Module模块化
react笔记之css-Module模块化
125 0
|
前端开发
#yyds干货盘点 react笔记之css-Module模块化
#yyds干货盘点 react笔记之css-Module模块化
76 0
|
JavaScript 前端开发 开发者
React全家桶:模块化与组件化--开发者工具的安装--函数式组件
React全家桶:模块化与组件化--开发者工具的安装--函数式组件
162 0
React全家桶:模块化与组件化--开发者工具的安装--函数式组件
|
前端开发
react实战笔记9:模块化2
react实战笔记9:模块化2
62 0
react实战笔记9:模块化2
|
前端开发
react实战笔记8:模块化
react实战笔记8:模块化
80 0
react实战笔记8:模块化
|
JavaScript 前端开发
【React】归纳篇(三)模块与组件以及模块化与组件化-概念与基本使用
【React】归纳篇(三)模块与组件以及模块化与组件化-概念与基本使用
284 0
【React】归纳篇(三)模块与组件以及模块化与组件化-概念与基本使用