国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

React-Router 5.0 制作導航欄+頁面參數(shù)傳遞

這篇具有很好參考價值的文章主要介紹了React-Router 5.0 制作導航欄+頁面參數(shù)傳遞。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

React使用路由

使用React構建SPA應用(單頁面應用),要想實現(xiàn)頁面間的跳轉,首先想到的就是使用路由。在React中,常用的有兩個包可以實現(xiàn)這個需求,那就是react-routerreact-router-dom。本文主要針對react-router-dom進行說明。

眾所周知,JSDOM BOM ECMAScript 組成, React-Router-Dom 使用 BOM 提供的 history API

React-Router-Dom有兩種路由方式 HashRouterBrowserRouter

  • HashRouter特點 在URL中采用#號來作為當前視圖的地址,改變#號后的參數(shù),頁面并不會重載
  • BrowserRouter特點 和正常瀏覽網(wǎng)易url類似 頁面并不會重載

React-Router-Dom 導航實現(xiàn)

管他三七二十一 先安裝再說: yarn add react-router-dom

在使用React-Router-DomAPI之前 需要使用BrowserRouterHashRouter包裹住

// 將路由定義為根組件
import {BrowserRouter, HashRouter as Router} from 'react-router-dom';

ReactDOM.render(
    <Router>
        <App />
    </Router>
, document.getElementById('root'));

// 然后定義路由
 <Switch>
      <Route exact path="/組件1" component={組件1} />
      <Route path="/組件2" component={組件2} />
      <Route path="/組件3">
            <組件3 />
      </Route>
      <Route render={(props) => {
            return (
                <div>
                    Router Not Found~ 404
                </div>
            );
      }} />      
</Switch>

// 導航實現(xiàn)
<NavLink to="/組件1" activeStyle={activeStyle}>組件1</NavLink>
<NavLink to="/組件2" activeStyle={activeStyle}>組件2</NavLink>
<Link to="/組件3" activeStyle={activeStyle}>組件3</Link>

以上代碼已經(jīng)實現(xiàn)了一個基本的導航

示例:

React-Router 5.0 制作導航欄+頁面參數(shù)傳遞

導航代碼剖析

BrowserRouterHashRouter已經(jīng)介紹過了 兩種url不同的展現(xiàn)形式
定義路由時使用了三種不同的方式:

  • 指定component對應的組件
  • 將組件作為子組件
  • router指定render函數(shù)。返回一個組件

幾種聲明方式的區(qū)別:

  • 第一種直接指定是比較常見的 這樣會將history對象直接注入到組件的props
  • 第二種是路由跳轉過去只展示對應組件 props里面不存在history對象 如果想使用history對象的需要使用withRouter這個高階函數(shù) 進行history注入
  • 第三種可以直接傳入props 直接擁有history對象 比較方便

Switch組件:
類似于編程語言的條件控制語句,匹配到一個Route就不會往下匹配了

Route組件:
如果Route沒用指定path 只要匹配不到path的都會渲染這個組件 可以用這個增加用戶體驗 實現(xiàn)一個友好404頁面

exact屬性 嚴格匹配路由 防止 /one 匹配到 /one/two這個路由 因為路由的匹配順序是至上而下 定義兩個路由如果 /one/two 在前面的話 不使用嚴格匹配則不會返回預期結果

  • NavLink 和Link
    這兩個組件都是對 <a href="">A鏈接</a> 的一種封裝 但是使用場景不太一樣
    如果選擇導航欄的時候使用NavLink非常合適 因為他直接提供activeStyle等屬性 直接聚焦在這個組件上時style會應用給組件

Link一般作用于跳轉到其他頁面 實則就是A鏈接

React-Router-Dom 頁面跳轉參數(shù)傳遞

主要就是使用history對象進行頁面跳轉

API介紹:

  • history.goBack() 返回上一頁
  • history.replace() 在有些場景下面 重復使用push 或者 a標簽會產(chǎn)生死循環(huán) 為了避免這種情況發(fā)生 在可能出現(xiàn)死循環(huán)的地方使用replace方式來跳轉
  • history.push() 進入新頁面

頁面參數(shù)傳遞

  • 第一種
    // 隱示傳參
    傳遞
    props.history.push(`/test`, {
                name: 'sb'
            });
    獲取
    props.location.state        
  • 第二種
    傳遞
    props.history.push({
                pathname: '/test',
                query: {
                    id: 1
                }
            });
    獲取
    props.location.query       
  • 第三種
    傳遞
    props.history.push('/about/1');
    獲取
    props.match.params 
    
    
    或者
    props.history.push('/about?id=1');
    獲取
    props.location.search

示例:

React-Router 5.0 制作導航欄+頁面參數(shù)傳遞

React-Router 5.0 制作導航欄+頁面參數(shù)傳遞

代碼

React-Router 5.0 制作導航欄+頁面參數(shù)傳遞

React-Router 5.0 制作導航欄+頁面參數(shù)傳遞

常用API

  • HashRouter 瀏覽器會在路由砂鍋出現(xiàn)#號字樣 (一般會當成根組件使用)
  • BrowserRouter 瀏覽器路由正常顯示 (一般會當成根組件使用)
  • Link 對a標簽的一個封裝
  • to屬性對應的值可以是字符串 也可以是location對象 一般作用于做跳轉
  • NavLink 一般作用于做導航 可以控制選中之后的樣式
  • Redirect 重定向跳轉
  • Route 路由分配 哪個path對應哪個路由
  • exact 嚴格匹配
  • component 指定渲染的組件
  • Prompt 確定是否離開當前頁面提示 監(jiān)聽離開事件

HOOKs 對于函數(shù)組件的一些history操作

  • useRouteMatch()
  • useParams()

來源參考:憧憬在 aoppp.com發(fā)布文章來源地址http://www.zghlxwxcb.cn/news/detail-478337.html

到了這里,關于React-Router 5.0 制作導航欄+頁面參數(shù)傳遞的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【React】react-router 路由詳解

    【React】react-router 路由詳解

    ?????? ??個人主頁: 阿選不出來 ?????? ??個人簡介: 一名大二在校生,學習方向前端,不定時更新自己學習道路上的一些筆記. ?????? ??目前開發(fā)的專欄: JS ??Vue??React?? ?????? 前端路由就是把不同路由對應不同的內(nèi)容或頁面的任務交給前端來做,根據(jù)不同的url地

    2024年02月01日
    瀏覽(23)
  • React-Router路由基礎篇(簡單易學)

    React-Router路由基礎篇(簡單易學)

    文章目錄 系列文章目錄 前言 一、pandas是什么? 二、使用步驟 1.引入庫 2.讀入數(shù)據(jù) 總結 提示:這里可以添加本文要記錄的大概內(nèi)容: 例如:隨著人工智能的不斷發(fā)展,機器學習這門技術也越來越重要,很多人都開啟了學習機器學習,本文就介紹了機器學習的基礎內(nèi)容。 (

    2024年04月14日
    瀏覽(25)
  • React-學習筆記(8—react-router@5 and @6)

    目錄 1、react-router@5 1-1、在項目中安裝路由 1-2、一個項目使用一個路由器來管理路由即可 1-3、 路由組件和一般組件的區(qū)別 1-4、使用 NavLink 1-5、封裝 NavLink —— MyNavLink 1-6、使用 Switch 標簽 1-7、BrowserRouter解決多級路徑匹配樣式丟失問題 1-8、路由的模糊匹配和嚴格匹配 1-9、路

    2024年02月12日
    瀏覽(49)
  • 【前端知識】React 基礎鞏固(三十九)——React-Router的基本使用

    【前端知識】React 基礎鞏固(三十九)——React-Router的基本使用

    Router中包含了對路徑改變的監(jiān)聽,并且會將相應的路徑傳遞給子組件。 Router包括兩個API: BrowserRouter使用history模式 HashRouter使用hash模式(路徑后面帶有#號) 嘗試在項目中使用HashRouter: 安裝Router 在 index.js 中引入并使用HashRouter Routes:包裹所有的Route,在其中匹配一個路由(

    2024年02月14日
    瀏覽(27)
  • 一文了解 history 和 react-router 的實現(xiàn)原理

    一文了解 history 和 react-router 的實現(xiàn)原理

    我們是袋鼠云數(shù)棧 UED 團隊,致力于打造優(yōu)秀的一站式數(shù)據(jù)中臺產(chǎn)品。我們始終保持工匠精神,探索前端道路,為社區(qū)積累并傳播經(jīng)驗價值。 本文作者:霜序 在前一篇文章中,我們詳細的說了 react-router@3.x 升級到 @6.x 需要注意的問題以及變更的使用方式。 react-router 版本更新

    2024年02月12日
    瀏覽(17)
  • <React-Router>超全react路由知識點(跳轉、傳參、子路由、重定向等)

    <React-Router>超全react路由知識點(跳轉、傳參、子路由、重定向等)

    目錄 一、路由環(huán)境配置 1.搭建一個項目名為boke(自定義),編輯文檔語言為TypeScript的項目環(huán)境。 2.安裝所有package.json中的依賴----安裝包(注意要【cd 項目名】進入項目文件安裝) 3.添加React-Router路由 4.文件、目錄相關修改與搭建 二、路由的懶加載 ?三、路由跳轉 1.標簽跳轉(

    2024年02月11日
    瀏覽(60)
  • 創(chuàng)建react腳手架項目——demo(react18 + react-router 6)+ react項目打包部署

    創(chuàng)建react腳手架項目——demo(react18 + react-router 6)+ react項目打包部署

    全局安裝 create-react-app 說明:不建議安裝全局,建議使用 npx 命令安裝,具體可參考官網(wǎng),如下: 官網(wǎng): https://zh-hans.legacy.reactjs.org/docs/create-a-new-react-app.html. 1.2.1 問題1——npm ERR! code ENOTFOUND(網(wǎng)絡問題clashx) 問題描述,如下: 解決問題——方式1 如果使用了clashx,可能是它

    2024年02月07日
    瀏覽(30)
  • 【退役之重學前端】使用vite+vue3+vue-router,重構react+react-router前后端分離的商城后臺管理系統(tǒng)

    前言: 對前端各個技術板塊,HTML、CSS、JavaScript、ES6、vue家族,整體上能“摸其大概”。筆者計劃重構一個基于react的商城后臺管理系統(tǒng)。 —— 2024年2月16日 vue3 sass bootstrap ES7 前后端分離 分層架構 模塊化開發(fā) npm vite git

    2024年02月20日
    瀏覽(25)
  • react自定義組件間的傳值,if..else..判斷,for循環(huán)(嵌套map使用),點擊事件(Onclick),頁面上事件實事傳遞參數(shù)(基礎版)

    9.自定義組件間的傳值 10.if..else..判斷 11.for循環(huán)(嵌套map使用) 12.點擊事件(Onclick) 13.頁面上事件實事傳遞參數(shù) 14.關于export default function App()與export function App()的區(qū)別 ? ?export default不需要{} ? ? ?import ?Gallery from \\\'./Gallery.js\\\'; ? ?export function需要{} ? ? ? import {Gallery} from \\\'./Galler

    2024年01月17日
    瀏覽(29)
  • React Router 中的路由導航方法:push() 和 replace() 詳解

    在 React Router 中, this.props.history.push() 和 this.props.history.replace() 是用于編程式導航的兩個常用方法。它們允許我們在組件中動態(tài)地更改路由,并可選地傳遞狀態(tài)參數(shù)。本文將介紹這兩個方法的用法和區(qū)別。 push() 方法將在導航時創(chuàng)建一個新的歷史記錄條目,并將用戶重定向到新

    2024年03月15日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包