react-路由和Ant design

来源:https://www.cnblogs.com/ygjzs/archive/2020/01/17/12206148.html
-Advertisement-
Play Games

路由的使用 "react router" 其中一個組件 獲取路由參數 "Ant design" 使用在上面的代碼有體現 按需導入配置 .baelrc "electron技術" ...


路由的使用

react-router

import React from 'react'

// 如果要使用 路由模塊,第一步,運行 yarn add react-router-dom 
// 第二步,導入 路由模塊

// HashRouter 表示一個路由的跟容器,將來,所有的路由相關的東西,都要包裹在 HashRouter 裡面,而且,一個網站中,只需要使用一次 HashRouter 就好了;
// Route 表示一個路由規則, 在 Route 上,有兩個比較重要的屬性, path   component
// Link 表示一個路由的鏈接 ,就好比 vue 中的 <router-link to=""></router-link>
import { HashRouter, Route, Link } from 'react-router-dom'

import Home from './components/Home.jsx'
import Movie from './components/Movie.jsx'
import About from './components/About.jsx'


// 導入 日期選擇組件
import { DatePicker } from 'antd'


export default class App extends React.Component {
  constructor(props) {
    super(props)
    this.state = {}
  }

  render() {
    // 當 使用 HashRouter 把 App 根組件的元素包裹起來之後,網站就已經啟用路由了
    // 在一個 HashRouter 中,只能有唯一的一個根元素
    // 在一個網站中,只需要使用 唯一的一次 <HashRouter></HashRouter> 就行了
    return <HashRouter>
      <div>
        <h1>這是網站的APP根組件</h1>

        <DatePicker></DatePicker>

        <hr />

        <Link to="/home">首頁</Link>&nbsp;&nbsp;
        <Link to="/movie/top250/10">電影</Link>&nbsp;&nbsp;
        <Link to="/about">關於</Link>

        <hr />

        {/* Route 創建的標簽,就是路由規則,其中 path 表示要匹配的路由,component 表示要展示的組件 */}
        {/* 在 vue 中有個 router-view 的路由標簽,專門用來放置,匹配到的路由組件的,但是,在 react-router 中,並沒有類似於這樣的標簽,而是 ,直接把 Route 標簽,當作的 坑(占位符) */}
        {/* Route 具有兩種身份:1. 它是一個路由匹配規則; 2. 它是 一個占位符,表示將來匹配到的組件都放到這個位置, 如果想讓路由規則,進行精確匹配,可以為 Route,添加 exact 屬性,表示啟用精確匹配模式 */}
        <Route path="/home" component={Home}></Route>

        <hr />

        {/* 註意:預設情況下,路由中的規則,是模糊匹配的,如果 路由可以部分匹配成功,就會展示這個路由對應的組件 */}
        {/* 如果要匹配參數,可以在 匹配規則中,使用 : 修飾符,表示這個位置匹配到的是參數 */}
        <Route path="/movie/:type/:id" component={Movie} exact></Route>

        <hr />

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

其中一個組件

獲取路由參數

import React from 'react'

export default class Movie extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      routeParams: props.match.params
    }
  }

  render() {
    console.log(this);
    // 如果想要從路由規則中,提取匹配到的參數,進行使用,可以使用 this.props.match.params.*** 來訪問
    return <div>
      {/* Movie --- {this.props.match.params.type} --- {this.props.match.params.id} */}

      Movie --- {this.state.routeParams.type} --- {this.state.routeParams.id}

    </div>
  }
}

Ant design

使用在上面的代碼有體現

// JS打包入口文件
// 1. 導入包
import React from 'react'
import ReactDOM from 'react-dom'

import App from './App.jsx'

// 全局導入 Ant Design 的樣式表
// 一般,我們使用的 第三方UI組件,它們的樣式表文件,都是 以 .css 結尾的,所以,我們最好不要為 .css 尾碼名的文件,啟用 模塊化;
// 我們推薦自己不要直接手寫 .css 的文件,而是自己手寫 scss 或 less 文件,這樣,我們只需要為 scss 文件 或 less 文件啟用模塊化就好了;

// 由於 直接使用 Ant Design 的全部包,體積過大,所以,建議大家使用 按需導入,這樣,能減少 bundle.js 文件的體積
// import 'antd/dist/antd.css'

// 使用 render 函數渲染 虛擬DOM
ReactDOM.render(<App></App>, document.getElementById('app'))

按需導入配置

.baelrc

{
  "presets": ["env", "stage-0", "react"],
  "plugins": ["transform-runtime", ["import", { "libraryName": "antd", "style": "css" }]]
}

electron技術


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

-Advertisement-
Play Games
更多相關文章
  • 文本陰影介紹 在 中使用 屬性設置文本陰影,該屬性一共有 個屬性值如:水平陰影、垂直陰影、(清晰度或模糊距離)、陰影顏色。 屬性值說明,在文本陰影實踐中:第一個值是設置陰影水平方向移動,第二個值是設置陰影垂直方向移動,第三個值是設置陰影模糊距離,第四個值是設置陰影顏色。 屬性值可以設置為負數。 文本 ...
  • 音樂導航 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { margin: 0; padding: 0; list-style: none; } .nav { ...
  • 背景: 項目基於原生js,沒用到任何腳手架和框架,但也需要打包壓縮。 項目的js中聲明瞭一些全局變數 供其他js調用。 這時候如果用webpack打包,基於webpack特性,會嵌套一層大函數,會將js中的變數變成局部,不能供其他js調用。 因此棄用了webpack。選用了uglifyjs。 原因: ...
  • 手風琴案例+stop的使用(解決動畫隊列的問題) stop();// 停止當前正在執行的動畫 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { margin: ...
  • title: '[react]深入 - 一等公民 props & onChange'date: 2017-08-23 10:05:07tags:reactreactjspropsonChange框架reduxcategories:技術寫在前面這篇博客的前身是 《React 新手必須知道的10件事》,... ...
  • 自定義動畫 animate(); 第一個參數:{對象},裡面可以傳需要動畫的樣式 第二個參數:speed 動畫的執行時間 第三個參數:easing 動畫的執行效果 第四個參數:callback 回調函數 //第一個參數:對象,裡面可以傳需要動畫的樣式 $("#box1").animate({ lef ...
  • https://www.zhangxinxu.com/wordpress/2019/10/a-href-target-window-blank-refresh/ ...
  • 京東輪播圖 有個計數的,點右邊,計數增加,判斷計數是否超過總的長度,超過設置計數為0,再設置當前的圖片動畫,兄弟的圖片動畫 左邊點擊同理,計數是--,判斷計數是否等於-1,等於則reset計數為總長度,在設置當前的圖片動畫,兄弟的圖片動畫 <!DOCTYPE html> <html lang="zh ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...