react路由 - 参数、

React路由模块react-router-dom的安装及基本使用、传递路由参数 一、路由模块 在React项目中 若要实现页面的跳转 需使用路由 而react-router-dom正是React推荐的常用路由模块 安装 npm install react-router-dom 按需导入react-router-dom路由模块 HashRouter是路由的根容器 所有和路由相关的东西都要包裹在HashRouter内部 且一个网站只需要使用一次HashRouter Router是路由规则(rules) 其上有两个重要属性:path和component Link表示路由链接 类似于Vue中 阅读详情

1、我们把前面Home组件改动一下,用来展示新闻列表

import React from 'react';
import axios from "axios";

export default  class Home extends React.Component{
    // 构造
      constructor(props) {
        super(props);
        // 初始状态
        this.state = {
            news:[] // 用来保存新闻数据
        };
      }

    componentWillMount() {
        axios
            .get("http://localhost/news.php")
            .then((response)=>{
                this.setState({
                    news:response.data,
                })
            })
    }

    render(){
        return <div>
            <h2>新闻排行</h2>
            {
                this.state.news.map((item)=>{
                    return <div>
                        <a href="#">{item.title}</a>
                        <p>{item.desc}</p>
                    </div>
                })
            }
        </div>
    }
}

这里写图片描述

2、接下来我们要实现 点击 新闻标题,跳转到详细页面。

准备新闻详细页组件
detail.js:

import React from 'react';

export default  class About extends React.Component{
    render(){
        return <div>
            <h2>新闻详细页面</h2>
            <p>xxxxx</p>
            <p>xxxxx</p>
            <p>xxxxx</p>
            <p>xxxxx</p>
        </div>
    }
}

3、新闻列表页的跳转连接

我们的Home组件(现在是新闻组件),还是如下连接:

<a href="#">{item.title}</a>

我们要换成react路由中的Link标签。
所以在home.js里:

#首选要
// 引入路由
import {
    BrowserRouter as Router,
    Route,
    Link
} from 'react-router-dom';

然后修改成:

<Link to={"/about/"+item.id}>{item.title}</Link>

注意to里的值,最后我们要http://localhost:9000/about/101这样路径。

4、还需要配置路由
router-demo.js里:

<Route  path="/about/:newsid" component={Detail}/>

这个路由就是 加载我们的 新闻详细页组件(detail.js)
这里写图片描述
是我们想要的效果。

5、在新闻详情页里 获取新闻ID

detail.js:

import React from 'react';

export default  class About extends React.Component{
    render(){
        return <div>
            <h2>新闻详细页面 <span>ID:{this.props.match.params.newsid}</span></h2>
            <p>xxxxx</p>
            <p>xxxxx</p>
            <p>xxxxx</p>
            <p>xxxxx</p>
        </div>
    }
}

我们使用组件的方式开发,可以用this.props.match.params.xxx来获取路由上的参数。
这里写图片描述
获取到id,我们可以在这个组件里,发送ajax获取服务端的新闻详细数据(这个过程我们省略了)。

6、一个需要交代的知识点。

看我们的router-demo.js代码:

import React from 'react';

// 引入路由
import {
    BrowserRouter as Router,
    Route,
    Link
} from 'react-router-dom';

//引入组件
import Home from "./home";
import About from "./about"
import Help from  "./help"
import Detail from "./detail"

export default  class RouterDemo extends React.Component{
    render(){
        return <Router>
            <div>
                <ul>
                    <li><Link to="/">Home</Link></li>
                    <li><Link to="/about">About</Link></li>
                    <li><Link to="/help">Help</Link></li>
                </ul>

                <hr/>

                <Route exact path="/" component={Home}/>
                <Route  path="/about" component={About}/>
                <Route  path="/help" component={Help}/>
                <Route  path="/about/:newsid" component={Detail}/>
            </div>
        </Router>
    }
}

注意Route标签。
这里写图片描述

看到没有?同时显示了about和detail的页面内容。

这是为什么呢?

                <Route exact path="/" component={Home}/>
                <Route  path="/about" component={About}/>
                <Route  path="/help" component={Help}/>
                <Route  path="/about/:newsid" component={Detail}/>

看路由配置,/about/:newsid其实是包含/about的。
要解决这个问题(不要显示about的页面内容),只需:

 <Route exact path="/about" component={About}/>

加一个exact属性(像/根路由那样)

深入解析V4L2框架与高通KMD在Camera驱动中的协同设计 本文深入解析了V4L2框架与高通KMD在Camera驱动中的协同设计。V4L2作为Linux内核标准视频驱动框架,提供了统一的设备抽象与数据流管理;而高通KMD则在其基础上,通过引入CRM等核心模块,构建了一套针对移动平台复杂相机系统的高效内核态驱动架构,实现了硬件配置与执行的解耦与智能调度。 阅读详情

相关推荐

Hermes Agent Windows安装教程:本地智能体离线部署实战

本地智能体(Local Agent)是一种运行在用户设备端、无需云端依赖即可响应自然语言指令并自动化执行任务的轻量级AI运行时框架。其核心原理基于配置驱动的任务监听与脚本调用机制,通过服务化驻留实现持续响应能力,技术价值在于保障数据隐私、规避API调用限制、适配内网及老旧系统环境。典型应用场景包括财务报表自动整理、科研仪器数据归档、IT资产变更通知等Windows桌面自动化需求。本文聚焦Hermes Agent这一主流开源实现,围绕Windows平台特有的服务注册、权限模型、杀软拦截、中文路径与YAML编码

weixin_34411563的博客 433

【React】React路由的配置和传参方式

其实是因为,Route 的机制,当匹配上了第一个 /about 组件后,它还会继续向下匹配,因此会出现两个 About 组件,这时我们可以采用 Switch 组件进行包裹,Switch匹配到第一个路由就不会继续匹配了。首先我们得 React 中路由得注册是有顺序得,我们在匹配得时候,因为 Home 组件是先注册得,因此在匹配的时候先去找 home 路由,由于是模糊匹配,会成功的匹配。它会按照第一个来匹配,如果第一个没有匹配上,那就会失败,这里的 a 和 home 没有匹配上,很显然会失败。

fangyuan__的博客 341

CosyVoice 本地部署详细教程 手把手小白教程

本文提供了详细的CosyVoice本地部署教程,强调了避免中文名称和空格的重要性,并列出了必要的软件安装步骤,包括CUDA、cuDNN、Git和Miniconda。教程涵盖了从检查CUDA版本到下载模型和运行模型的全过程,确保用户能够顺利部署并使用CosyVoice。

huazn612的博客 2万+

react路由传值

在上一篇总结了react中路由的基本用法,实现了基本的页面跳转,但这肯定是不够用的,比如说在新闻列表页面,点击某一条新闻,希望页面能跳转到新闻详情页,又该如何实现呢? 首先继续上一篇的项目,添加一个新闻详情页面组件content.js 然后在根组件App.js中配置路由: 最后,修改新闻列表组件News.js 当我们点击新闻列表页面的新闻时,页面就会跳转到详情页,但是...

weixin_30340353的博客 177

维纳(Wiener)复原滤波器的三种推导形式及其在图像处理中的应用

本文深入解析了维纳(Wiener)复原滤波器的三种核心推导形式:卷积形式、矩阵向量形式和频域形式,并重点阐述了其基于线性最小均方误差(LMMSE)估计的核心思想。通过Python实战演示,展示了频域形式如何高效地在图像去模糊与噪声抑制之间取得平衡,是图像复原领域的经典且实用的工具。

net55的博客 577

Mplus—验证性因素分析(Confirmatory Factor Analysis, CFA)

介绍一阶和二阶验证性因素分析概况及在Mplus中的操作方法。

m0_54401011的博客 1万+

React 路由传参的三种方式

一、params传参 1,刷新页面后参数不消失, 2,参数会在地址栏显示 3,需要在Route中配置参数名称 1、params传递单个参数 路由页面 使用Link传参 使用js传参 在另一个页面获取参数 2、params传递多个参数 路由页面 使用Link传参 使用js传参 获取参数 二、query传参 刷新页面后参数消失 路由页面(无需配置) 使用Link传参 使用js传参 获取参数 三、state传参 刷新页面后参数不消失 参数不会在地址栏显示 路由页面(无需配置) 使用Link传参 使用js传参 获

weixin_42332641的博客 1万+

ComfyUI的G-Dino模型加载器报错解决方案:从崩溃到重生

遇到G-Dino模型加载器报错不要慌,按照本文的步骤操作,99%的问题都能解决。模型文件正确下载到指定位置segment_anything节点安装完整且无冲突需要补充更多细节或故障排除方法吗?可以随时告诉我。

2301_78150483的博客 4020

React 路由配置

3, 创建路由文件src/router/index.js, 导入需要路由跳转的组件, 并导出路由配置数组。2, 在入口文件 src/index.js中,从路由模块导入工具组件Router ,并包裹根组件。2, 在入口文件 src/index.js中,从路由模块导入工具组件Router ,并包裹根组件。2, 在入口文件 src/index.js中,从路由模块导入工具组件Router ,并包裹根组件。2, 创建路由文件src/router/index.jsx, 导入根组件和需要路由跳转的组件。

We_990528的博客 4721

2024.6.15丨基于VFDB数据库的致病菌毒力因子注释实战指南

本文提供了一份基于VFDB数据库进行致病菌毒力因子本地化注释的实战指南。详细介绍了从环境准备、DIAMOND工具安装、VFDB数据库选择与构建,到核心比对操作及结果解读与过滤的全流程。重点阐述了本地化分析相较于在线工具在速度、稳定性和批量处理上的优势,旨在帮助微生物基因组研究人员高效、精准地识别致病菌的关键毒力因子。

weixin_29220405的博客 269

论文阅读笔记--Grid Anchor based Image Cropping: A New Benchmark and An Efficient Model

基于网格锚的图片裁剪:一种新的标准和高效的模型摘要1.介绍2.相关工作2.1 图像裁剪数据集和评估指标 摘要 图像裁剪的目的是通过去除图像中无关的内容来改善图像的组成和美学质量。现有的图像裁剪数据库大多只提供一个或多个人工标注的边界框作为基准,难以反映实际中图像裁剪的非唯一性和灵活性。 采用IoU等评价指标也不能可靠地反映裁剪模型的真实性能。本文回顾了图像裁剪的问题,并通过考虑图像裁剪的特殊特性和要求(如局部冗余、内容保存、高宽比),提出了基于网格锚的公式。 我们的公式将候选裁剪窗口的搜索空间从数百万减少到

qq_22565865的博客 2948

React项目-路由配置

在src/创建一个router.js文件(目录结构可以自定义)

StupidlyGrass的博客 3003

基于STM32的嵌入式平台实现EtherCAT主站

本文将介绍如何在基于STM32的嵌入式平台上构建EtherCAT主站,并提供相应的源代码。使用SOEM库提供的API函数,我们可以实现与EtherCAT从站设备的实时通信和数据交换。在STM32的代码中,使用SOEM库提供的API函数初始化EtherCAT主站。在SOEM库中,我们可以找到EtherCAT主站的实现代码和相关的API函数。使用SOEM库提供的API函数实现EtherCAT主站的功能,包括发送和接收EtherCAT数据帧、处理从站设备的状态等。确保连接正常并且设备能够相互通信。

CodeSageX的博客 2832

React【Hooks】如何批量更新state以及如何获取路由参数

一、如何批量更新 例如我们要通过两个状态来实现下图中的效果 在【class】中是通过setState来实现的,在【hooks】中的话,可以通过unstable_batchedUpdates来实现 import { useState } from 'react'; import { unstable_batchedUpdates } from 'react-dom';//批量更新状态时使用 import React from 'react'; const Example = () => { c

曲鸟 6616

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

第十二章 React 路由配置,路由参数获取

在React中,路由是用于管理应用程序中不同页面之间的切换和导航的机制。它允许开发人员根据用户在应用程序中的行为,如点击链接或提交表单,来切换不同的组件或页面。最为常见的就是我们的导航菜单,点击菜单以后现实相对应的页面。react-router-dom是React中非常重要的一个路由管理库,对于开发React应用程序来说是很有必要学习的。在React中,react-router-dom可以帮助我们实现页面间的跳转和导航,使得单页应用能够实现多页应用类似的切换效果。

Wait.End的博客 2813

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

react 路由跳转带参数

1.比较常用的就是修改路由配置在path:"/xxx/:type" 这种类型 { name: 'xxxx', text: 'xx', path: '/xxxx/:type', component: xx }, 这种类型的主要是详情页面等不在一级显示的页面中使用。 2.第二种使用query 来实现,首先引入 import { Link } from 'react-router-dom' 然后在需要跳转的地方添加 .

山外小楼 2785

react 路由获取参数

在简书页面中Home页面有详情页在组件List中如下图: 代码如下: {list.map((item,index) =>{ return ( <Link to={'/detail/'+item.get('id')} key = {index}> <ListItem > <img cl...

weixin_30266885的博客 2650

React中路由的参数传递 - 路由的配置文件

传递参数有二种方式(需要注意的是, 这两种方式在Router6.x中都是提供的hook函数的API, 类组件需要通过高阶组件的方式使用):方式一: 动态路由的概念指的是路由中的路径并不会固定: 在跳转的页面中可以通过hook函数useParms获取到传入的id, 由于我们现在使用的是类组件, 无法使用hook函数, 因此需要通过高阶组件对当前组件增强(上一篇刚刚讲过高阶组件的封装, 这里直接使用, 给到大家代码) 使用高阶组件增强当前Detail组件, 就可以通过useParams获取到传递的id

m0_71485750的博客 1万+

REACT_react路由中如何传递参数

注意:使用路由必须引入路由标签,并且使用 标签包裹 下面列举三种传递参数的方式 1.路由后面添加参数传递 2.路由后面添加变量传递 3.隐式传递,不会再路由后面显示传递的参数 一、基础使用 import React,{Component} from 'react'; import {BrowserRouter as Router, Route, Link} from 'react-router-dom' //导入组件 import Banner from '../other/banner' // .

小歪博客 619

React通过路由传递参数小节

React通过路由传递参数方式

m0_63587743的博客 691

React中路由传参及接收参数的方式

注意:路由表改变后要重启服务 方式 一: 通过params 1.路由表中 <Routepath=' /sort/:id ' component={Sort}></Route>             2.Link处 ...

a1178118728的博客 1176

【React 全家桶】React路由的使用 —— react-router-dom(路由切换、获取路由参数、路由嵌套、404)内含源码

【React 全家桶】React路由的使用 —— react-router-dom 路由切换、获取路由参数、路由嵌套、404

Dai的博客 4277

react多级路由的嵌套使用及参数的传递

一级路由/home /about import React, { Component } from "react"; import { Route, Switch,Redirect } from "react-router-dom"; import Home from "./pages/Home"; import About from "./pages/About"; import MyNavLink from "./components/MyNavLink"; import Header fro..

u014496893的博客 1878

react进入路由前获取数据_react怎么获取路由传过来的参数?

React中路由传参及接收参数的方式注意: 路由表改变后要重启服务方式 一:通过params1.路由表中2.Link处HTML方式XXXXJS方式this.props.router.push( '/sort/'+'2' )3.sort页面通过 this.props.params.id就可以接受到传递过来的参数(id)方式 二:通过query前提:必须由其他页面跳过来,参数才会被传递过来注:...

weixin_29310853的博客 6486

React页面路由参数传递、嵌套路由

隐式传参(state),通过地址栏是观察不到的;通过路由对象中的state属性进行数据传递,在落地组件中通过this.props.location.state得到。以“/detail/:id”形式传递的数据,在落地组件中通过this.props.match.params得到。key=value&key=value传递。

月光晒了很凉快的博客 617

react路由参数传递

react路由的三种传参方式 1、向路由组件传递params参数 ①参数传递 ②在注册路由时接收参数 注意这里后面时冒号在前面的 ③在要展示的组件内接收params参数 2、第二种,利用search传递参数 ①向路由组件传递参数 这种方式类似js常用方式传递参数 ②在路由注册是接收参数 这里是不需要接收的,正常注册路由就好 ③在要展示的组件内接收参数 参数放在 props中的location中的search中 这里的qs是对querystring的引入 目的是将字符串形式转换成对象的形式

m0_54056298的博客 1392

React中的路由嵌套,及获取路由上传过来的参数。

类比vue中路由跳转及传参: 传递参数:this.$router.push({ 'name':'',params}) 接收参数:this.$route.params React 中如下: 路由跳转: this.props.history.push() this.props.history.replace() this.props.history.go() 传递参数:&l...

欢迎来到我的频道~ 883
上一篇: React路由 - 初步
下一篇: react.js的两种路由方式:HashRouter
学习笔记666
博客等级 码龄12年 1047粉丝 1369原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值