React技术1-集成react router
发布日期:2021-05-10 06:02:37 浏览次数:24 分类:精选文章

本文共 2638 字,大约阅读时间需要 8 分钟。

react技术1-集成react router

前端各种架构技术的飞速发展,百家齐放,大部分框架都自动帮助我们集成了一些技术,方便我们使用。很容易盲目的往期走,却忘记了这些基本的操作是如何集成的。本章节会教大家如何集成 React Router,后续还会有更多技术集成,有兴趣的小伙伴关注一下~。

create-react-app 快速启动一个项目(简单介绍)

使用 create-react-app reactdemo 快速新建一个名为 reactdemo 的项目,进入项目目录启动。

cd reactdemoyarn start

react-router

Router 是每个项目必不可少的点。我们不能仅仅只用 Link 标签去进行跳转页面,很多流程下我们是通过执行完某部分代码后才进行的页面跳转。所以第一部分,我们试着引入路由。

1、新建页面

首先页面跳转就要先有页面,我们在 src 下新建两个文件夹 index 和 home, 并且在每个文件夹下都新建 index.jsx、index.css 文件。

2、导入路由

打开命令行工具,我们需要导入几个包 react-router 和 react-router-dom:

yarn add react-routeryarn add react-router-dom

或者可以使用 npm(后续不再展示)。

npm i react-router --savenpm i react-router-dom --save

3、路由编写

在 src 下新建 router.js 文件。

import React from 'react';
import {HashRouter, Route, Switch} from 'react-router-dom';
import Index from './index/index';
import Home from './home';
const Router = ({history}) => (
);
export default Router;

其中,exact 表示严格匹配模式,若置为 false 时,根据路由匹配所有组件。如 / 匹配 /、/home、/home/menu 等。所以请将此带上。.path 为路径名称。

后续每新增一个页面,都要在这里进行路由配置。这时我们就可以删除 App.js、App.css、App.test.js 三个文件了,没什么用,占位置。

路由文件写好后,我们要在 src/index.js 文件引入它。

// 替换 ...
- import App from './App';
+ import Router from './router';
import * as serviceWorker from './serviceWorker';
ReactDOM.render(
-
+
,
document.getElementById('root'));

4、验证效果

打开 http://localhost:3000/#/home 和 http://localhost:3000/#。

5、实现在事件中的路由跳转

这里来个小插曲,我们快速的导入一下 antd 库,这样按钮比较好看~。

yarn add antd

在 src/index.css 第一行加上如下代码:

@import '~antd/dist/antd.css';

好了,我们继续打开 src/index/index.js 文件。

import React from 'react';
import {Button} from 'antd';
import './index.css';
const IndexPage = ({history}) => {
const goToHome = () => {
history.push({
pathname: '/home',
});
// history.push({ pathname: '/home', search: '?name=search' });
};
return (
);
};
export default IndexPage;

其中,history.pushliğinin push tangible state props-work加上一些特定参数。这将允许我们通过上述方式实现路由跳转。

例如,你可以这样做:

const goToHome = () => {
history.push({
pathname: '/home',
search: '?name=search'
});
};

这样做后,你将看到路由变成 http://localhost:3000/#/home?name=search,并且可以通过 console.log(props.location.search) 取到参数。

6、使用 URL 传值

而对于希望通过 URL 传值,可以这样做:

const goToHome = () => {
history.push({
pathname: '/home',
search: '?name=search'
});
};

同样,你可以通过 console.log(props.location.search) 取到参数。

7、使用 query 参数

如果你是使用 Umi 项目,可以使用以下代码进行路由跳转和参数传递:

history.push({
pathname: '/home',
query: {
name: '这就是 name',
}
});

在 /home 页面,可以通过 props.location.query 取到参数对象。这是为了小伙伴们不需要再去截图数据拉。

上一篇:React技术2-集成 less 和 css-module
下一篇:图片添加水印、文件转图片、图片转文件、html2canvas截屏功能

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月14日 16时51分35秒