React 中的前端路由 react-router-dom

安装react路由

npm install react-router-dom --save

 

 

准备好两个组件页面 Counter.js和myBtn.js,作为演示使用

修改index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
import 'antd/dist/antd.css'; // or 'antd/dist/antd.less'
import {BrowserRouter,Route,Link} from 'react-router-dom';
import Counter from './Counter';
import ButtonSize from './myBtn';

/* <App />是jsx语法,需要React的支持 */
ReactDOM.render(
    <BrowserRouter>
      <div>
        <Route path="/counter" component={Counter} />
        <Route path="/mybtn" component={ButtonSize} />
      </div>
    </BrowserRouter>,document.getElementById('root')
);

 If you want your app to work offline and load faster,you can change
// unregister() to register() below. Note this comes with some pitfalls. Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();

 

输入网址即可定位到指定页面

 

 

 

 

在某个页面使用Link组件可以定义链接

myBtn.js

import React,{Component} from 'react';
import { Button,Radio } from 'antd';
import { DownloadOutlined } from '@ant-design/icons';
import {Link} from 'react-router-dom';

class ButtonSize extends React.Component {
    state = {
      size: 'large',};
  
    handleSizeChange = e => {
      this.setState({ size: e.target.value });
    };
  
    render() {
      const { size } = .state;
      return (
        <div>
          <Radio.Group value={size} onChange={this.handleSizeChange}>
            <Radio.Button value="large">Large</Radio.Button>
            <Radio.Button value="default">Default</Radio.Button>
            <Radio.Button value="small">Small</Radio.Button>
          </Radio.Group>
          <br />
          <br />
          <Button type="primary" size={size}>
            Primary
          </Button>
          <Button size={size}>Default</Button>
          <Button type="dashed" size={size}>
            Dashed
          </Button>
          <br />
          <Link to="/counter">
            <Button type="link" size={size}>
                 last page
            </Button>
          </Link>
          <br />
          <Button type="primary" icon={<DownloadOutlined />} size={size} />
          <Button type="primary" shape="circle" icon={<DownloadOutlined />} size={size} />
          <Button type="primary" shape="round" icon={<DownloadOutlined />} size={size} />
          <Button type="primary" shape="round" icon={<DownloadOutlined />} size={size}>
            Download
          </Button>
          <Button type="primary" icon={<DownloadOutlined />} size={size}>
            Download
          </Button>
        </div>
      );
    }
  }
  
 export default ButtonSize;

 

 点击返回列表页

 

关于路由的参数

修改index.js

 

 修改myBtn.js

 

 在Counter.js中接收参数

 

 

 

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...