router路由配置

路由

1.路由概念:随着浏览器地址发生改变,展示给用户不同的视图页面

2.模式:Hash模式 histo模式

3.使用场景:多页面的切换

4.插件:react-router-dom

5.react-router-dom路由的内置组件

NavLink 导航组件 自带active高亮 to={路由路径}

Link 导航组件 to= {路由路径}

Route 路由视图组件 path={路由路径} component={路由视图组件} router={函数}

Redirect 路由重定向组件 to={路由路径}

Switch 避免路由重复匹配组件

BrowserRouter 路由根组件

路由插件流程

1.下载 npm install react-router-dom -D

2.在src目录下新建router/config.js router/RouterView.js

config.js


import 路由视图组件 from '路径'

const routers=[

	{
	        path:'重定向路径',
	         component:路由视图组件,
	},
	{
	        path:'一级路由路径',
	        component:路由视图组件,
	        children:[
	                {
	                        path:'二级路由路径',
	                        component:路由视图组件
	                }
	        ]
	}
]

//抛出
exprot default routers
//RouterView.js

import React from 'react';//引入react组件

import {Route,Switch,Redirect} from 'react-router-dom'//引入react-router-dom组件

export default function RouterView(props) {

    let coms=props.routes.filter(item=>item.component)//筛选出路由视图组件

    let red=props.routes.filter(item=>item.redirect)//筛选路由重定向组件

    return (
        <Switch className="rout">
         {
             coms.map((item,index) =>{

                 return <Route key={index} path={item.path} render={()=>{
                     if(item.children){
                         return <item.component routes={item.children} />//递归调用
                     }
                     else{
                         return <item.component/>
                     }
                 }}></Route>
             })
         } ,
         {
             red.map((item,index) =>{
                 return <Redirect to={item.redirect} key={index}/>
             })
         }  
        </Switch>
    );
}

一级路由

import React, { Component } from 'react';
// 引入路由组件
import {BrowserRouter} from 'react-router-dom'
// 引入加载路由视图的函数组件
import RouterView from './route/RouterView'
// 引入路由配置表
import config from './route/config'

export default class App extends Component {
  render() {
    return (
      <div>
         <BrowserRouter>
            {/* 展示一级路由页面 */}
            <RouterView routes={config}/>
         </BrowserRouter>
      </div>
    );
  }
}

二级路由

import React, { Component } from 'react';
import { NavLink } from 'react-router-dom';
import RouterView from '../route/RouterView'
 {/* 二级视图组件 */}
 <RouterView routes={this.props.routes} />
Vue Router 是 Vue 官方的一个路由插件,用于修改地址栏路径时,切换显示匹配的组件,其官方网址为:https://v3.router.vuejs.org/zh/ [^1]。以下是前端 Vue Router 路由配置的详细教程: ### 安装 在 VScode 的终端执行以下代码来安装 vue-router: ```bash npm install vue-router@4 ``` ### 创建并配置路由 在 `src/router/index.js`(若使用 TypeScript 则为 `src/router/index.ts`)中创建路由器,并导出。以下给出两种不同场景的示例: #### 基础路由配置示例 ```typescript // src/router/index.ts import { createRouter, createWebHistory } from "vue-router"; import Home from "@/pages/Home.vue"; import About from "@/pages/About.vue"; // 创建路由器实例 const router = createRouter({ history: createWebHistory(), // 路由模式 routes: [ // 路由规则数组 { path: "/home", // 路径 name: "home", // 路由名称 component: Home // 对应的组件 }, { path: "/about", name: "about", component: About } ] }); export default router; ``` 此示例定义了两个基础路由,分别为 `/home` 和 `/about`,当访问对应路径时会显示相应的组件。 #### 包含子路由配置示例 ```typescript // src/router/index.js import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router' // 导入组件 import LoginVue from '@/views/Login.vue' import LayoutVue from '@/views/Layout.vue' import ArticleCategoryVue from '@/views/article/ArticleCategory.vue' import ArticleManageVue from '@/views/article/ArticleManage.vue' // 定义路由关系 const routes = [ { path: '/login', component: LoginVue }, { path: '/', component: LayoutVue, // 子路由 children: [ { path: '/article/category', component: ArticleCategoryVue }, { path: '/article/manage', component: ArticleManageVue } ] } ] // 创建路由器 const router = createRouter({ history: createWebHistory(), routes: routes }) // 导出路由 export default router ``` 该示例不仅有基础路由 `/login`,还有包含子路由的 `/` 路由,子路由 `/article/category` 和 `/article/manage` 会在 `/` 对应的 `LayoutVue` 组件中嵌套显示。 ### 使用路由 在 `main.js` 中引入并使用创建好的路由: ```javascript import { createApp } from 'vue' import App from './App.vue' import router from './router' const app = createApp(App) app.use(router) app.mount('#app') ``` ### 路由的两种工作模式 Vue Router 有不同的路由模式,上述示例中使用的 `createWebHistory()` 是 HTML5 History 模式,它利用 `history.pushState` 和 `history.replaceState` 来实现无刷新切换页面,地址栏显示正常的路径。还有一种常见模式是 `createWebHashHistory()`,即 Hash 模式,地址栏会带有 `#` 符号,例如 `http://example.com/#/home`,通过监听 `hashchange` 事件来切换页面。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值