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

来源:https://www.cnblogs.com/chenyingying0/archive/2020/04/15/12708405.html
-Advertisement-
Play Games

安裝react路由 npm install react-router-dom --save 準備好兩個組件頁面 Counter.js和myBtn.js,作為演示使用 修改index.js import React from 'react'; import ReactDOM from 'react-d ...


安裝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 } = this.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}>
                return 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中接收參數

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 和for迴圈有相同功能的還有while迴圈, while迴圈重覆執行一段代碼,直到某個條件不再滿足/while語句結構: 1 while(判斷條件) 2 { 3 迴圈語句 4 } 舉例1:使用while迴圈完成從盒子里取球的動作,每次取一個,共6個球。 1 <script type="text/ja ...
  • 很多事情不只是做一次,要重覆做。如列印10份試卷,每次列印一份,重覆這個動作,直到列印完成。這些事情,我們使用迴圈語句來完成,迴圈語句,就是重覆執行一段代碼//for語句結構: 1 for(初始化變數;迴圈條件;迴圈迭代) 2 { 3 迴圈語句 4 } 舉例:假如一個盒子里有6個球,我們每次取一個, ...
  • 當有很多種選項的時候,switch比if else使用更方便,語法如下: 1 switch(表達式) 2 { 3 case值1: 4 執行代碼塊 1 5 break; 6 case值2: 7 執行代碼塊 2 8 break; 9 ... 10 case值n: 11 執行代碼塊 n 12 break; ...
  • 要在多組語句中選擇一組來執行,使用if..else嵌套語句,語法如下: 1 if(條件1) 2 { 條件1成立時執行的代碼} 3 else if(條件2) 4 { 條件2成立時執行的代碼} 5 ... 6 else if(條件n) 7 { 條件n成立時執行的代碼} 8 else 9 { 條件1、2至 ...
  • if...else語句是在指定的條件成立時執行代碼,在條件不成立時執行else後的代碼;語法如下: 1 if(條件) 2 { 條件成立時執行的代碼} 3 else 4 {條件不成立時執行的代碼} 舉例1:假設你應聘web前端技術開發崗位,如果你會HTML技術,你面試成功,歡迎加入公司,否則你面試不成 ...
  • if語句是基於條件成立才執行相應代碼時使用的語句,其中if小寫,大寫字母(IF)會出錯! 1 if(條件) 2 { 條件成立時執行代碼} 舉例:假設你應聘web前端技術開發崗位,如果你會HTML技術,你面試成功,歡迎加入公司。代碼表示如下: 1 <!DOCTYPE > 2 <html> 3 <hea ...
  • hello, 小伙伴們大家好今天給大家分享的開源項目是 ,如果有學前端的小伙伴可以瀏覽一下這個開源項目。目前改項目在GitHub上已經有4700多start. 目前有社區有很多 Vue.js 的源碼解析文章,但是質量層次不齊,不夠系統和全面,這本電子書的目標是全方位細緻深度解析 Vue.js 的實現 ...
  • 先放圖,一個頭部組件 index.js import React,{Component} from 'react'; import ReactDom from 'react-dom'; import { Layout } from 'antd'; import 'antd/dist/antd.css ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...