笔记二十、使用路由Params进行传递参数

20.1、在父组件中设置路由参数


<NavLink to={`classify/${this.state.name}`} className={this.activeStyle}>classify</NavLink>

父组件 Home/index.jsx

javascript 复制代码
import React from "react";
import {NavLink, Outlet} from "react-router-dom";

class App extends React.Component {

    // 类组件中不能用const定义变量
    // 选中高亮
    activeStyle = ({isActive}) => {
        return isActive ? 'background' : "";
    };
    state = {name: 'lcq-lcq'};

    render() {
        return (
            <div>
                首页的页面
                <div style={{display: "flex", justifyContent: 'center', marginTop: '20px'}}>
                    <NavLink to={`classify/${this.state.name}`} className={this.activeStyle}>classify</NavLink>
                    <NavLink to='navigation' className={this.activeStyle}>navigation</NavLink>
                </div>
                <div style={{background: 'red'}}>
                    {/*<!-- Renders the child route's element, if there is one. -->*/}
                    <Outlet/>
                </div>
            </div>);
    }
}

export default App;

20.2 在路由表中设置路由参数

path: 'classify/:param',

javascript 复制代码
import {Navigate} from "react-router-dom";
import Home from "../components/Home";
import About from "../components/About";
import Classify from "../components/Home/components/Classify.jsx";
import Navigation from "../components/Home/components/Navigation.jsx";

export default [
    {
        path: '/home',
        element: <Home/>,
        children: [
            {
                path: 'classify/:param',
                element:<Classify />
            },
            {
                path: 'navigation',
                element:<Navigation />
            },
        ]
    },
    {
        path: '/about',
        element: <About/>,
    },
    {
        path: '/',
        element: <Navigate to='about'/>,
    }
]

20.3 在子组件中获取路由参数

javascript 复制代码
import React from 'react';
import {useParams} from "react-router-dom";

const Classify = () => {
    const params = useParams();
    console.log(params);
    return (
        <div>
            分类的页面
            <div>
                父组件home传递的参数:{params.param}
            </div>
        </div>
    );
}

export default Classify;
相关推荐
安分小尧2 分钟前
React 文件上传新玩法:Aliyun OSS 加持的智能上传组件
前端·react.js·前端框架
编程社区管理员3 分钟前
React安装使用教程
前端·react.js·前端框架
V---scwantop---信10 分钟前
现代科幻赛博朋克风品牌海报电子竞技设计无衬线英文字体 Glander – Techno Font
笔记·字体
拉不动的猪36 分钟前
vue自定义指令的几个注意点
前端·javascript·vue.js
yanyu-yaya37 分钟前
react redux的学习,单个reducer
前端·javascript·react.js
skywalk816338 分钟前
OpenRouter开源的AI大模型路由工具,统一API调用
服务器·前端·人工智能·openrouter
Liudef0639 分钟前
deepseek v3-0324 Markdown 编辑器 HTML
前端·编辑器·html·deepseek
拉不动的猪42 分钟前
uniapp与React Native/vue 的简单对比
前端·vue.js·面试
加瓦点灯1 小时前
观察者模式:解耦对象间的依赖关系
开发语言·javascript·观察者模式
WDeLiang2 小时前
Flask学习笔记 - 模板渲染
笔记·学习·flask