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

第三十章 React的路由基本使用

這篇具有很好參考價(jià)值的文章主要介紹了第三十章 React的路由基本使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

關(guān)于React路由,我們?cè)趯W(xué)習(xí)之前先了解一下其他知識(shí)點(diǎn):SPA應(yīng)用、路由的理解、react中如何使用路由。

SPA應(yīng)用的理解

我們知道React腳手架給我們構(gòu)建的是一個(gè)單頁(yè)應(yīng)用程序(SPA),在頁(yè)面加載時(shí),只會(huì)加載一個(gè)HTML文件,然后使用JavaScript動(dòng)態(tài)地更新頁(yè)面內(nèi)容。這意味著您需要使用JavaScript來(lái)處理路由,以便在用戶導(dǎo)航時(shí)更新頁(yè)面內(nèi)容,而不是通過傳統(tǒng)的HTTP請(qǐng)求/響應(yīng)循環(huán)加載新頁(yè)面。

  • SPA全稱:single page web application
  • 整個(gè)應(yīng)用只有一個(gè)完整的頁(yè)面
  • 點(diǎn)擊頁(yè)面中的路由鏈接不會(huì)刷新頁(yè)面,只會(huì)做頁(yè)面的局部更新
  • 數(shù)據(jù)都需要通過ajax請(qǐng)求獲取, 并在前端異步展現(xiàn)

第三十章 React的路由基本使用

SPA的優(yōu)點(diǎn)包括:

- 更快的頁(yè)面加載速度,因?yàn)橹恍枰虞d一次HTML文件,之后只需要更新頁(yè)面內(nèi)容。
- 更好的用戶體驗(yàn),因?yàn)轫?yè)面不會(huì)因?yàn)槊看螌?dǎo)航而重新加載。
- 更容易實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容,因?yàn)榭梢允褂?code>JavaScript來(lái)更新頁(yè)面內(nèi)容。

SPA的缺點(diǎn)包括:

- 對(duì)SEO不友好,因?yàn)樗阉饕嫱ǔV粫?huì)抓取初始HTML文件,而不會(huì)執(zhí)行JavaScript來(lái)抓取動(dòng)態(tài)內(nèi)容。
- 對(duì)于較大的應(yīng)用程序,可能會(huì)導(dǎo)致性能問題,因?yàn)樾枰虞d大量的JavaScript代碼。
- 對(duì)于不支持JavaScript的用戶,可能無(wú)法訪問應(yīng)用程序。


路由的理解

1、什么是路由?

簡(jiǎn)單的說一個(gè)路由就是一對(duì)映射關(guān)系 (key: value), key為路徑,value為function或者component

2、路由分類

  1. 后端路由:
  1. 理解: valuefunction, 用來(lái)處理客戶端提交的請(qǐng)求。
  2. 注冊(cè)路由: router.get(path, function(req, res))
  3. 工作過程:當(dāng)node接收到一個(gè)請(qǐng)求時(shí), 根據(jù)請(qǐng)求路徑找到匹配的路由, 調(diào)用路由中的函數(shù)來(lái)處理請(qǐng)求, 返回響應(yīng)數(shù)據(jù)
  1. 前端路由:
  1. 瀏覽器端路由,valuecomponent,用于展示頁(yè)面內(nèi)容。
  2. 注冊(cè)路由: <Route path="/test" component={Test}>
  3. 工作過程:當(dāng)瀏覽器的path變?yōu)?code>/test時(shí), 當(dāng)前路由組件就會(huì)變?yōu)?code>Test組件

React中如何使用路由

為了在React應(yīng)用程序中實(shí)現(xiàn)路由,您可以使用React Router庫(kù)。

React Router庫(kù)通過使用瀏覽器的歷史記錄API來(lái)操作URL并根據(jù)當(dāng)前URL呈現(xiàn)適當(dāng)?shù)慕M件來(lái)工作。當(dāng)用戶單擊與定義的路由匹配的鏈接時(shí),URL會(huì)更改并呈現(xiàn)相應(yīng)的組件。React Router庫(kù)提供了多種路由類型,包括BrowserRouter、HashRouterMemoryRouter等。其中BrowserRouter使用HTML5history API來(lái)實(shí)現(xiàn)路由,HashRouter使用URLhash部分來(lái)實(shí)現(xiàn)路由,MemoryRouter則將路由信息存儲(chǔ)在內(nèi)存中。

在使用React Router時(shí),您需要將路由器包裝在應(yīng)用程序的根組件中,并使用Route組件來(lái)定義每個(gè)路由。Route組件可以使用path屬性來(lái)定義路由的路徑,component屬性來(lái)指定路由匹配時(shí)要呈現(xiàn)的組件。Switch組件用于包裝Route組件,以確保只有一個(gè)路由匹配時(shí)才會(huì)呈現(xiàn)相應(yīng)的組件。如果您需要在路由之間傳遞參數(shù),可以使用URL參數(shù)或查詢參數(shù)。URL參數(shù)是在路徑中定義的參數(shù),例如/users/:id,其中:id是一個(gè)參數(shù)。查詢參數(shù)是在URL中以?開頭的鍵值對(duì),例如/users?id=123。您可以使用React Router提供的useParamsuseLocation鉤子來(lái)訪問這些參數(shù)。

編寫案例

步驟一:安裝React官方維護(hù)的路由依賴庫(kù)

npm i react-router-dom --save

步驟二:編寫組件Home

import React, { Component } from 'react'

export default class Home extends Component {
  render() {
    return <h2>我是Home的內(nèi)容</h2>
  }
}

步驟三:編寫組件About

import React, { Component } from 'react'

export default class About extends Component {
  render() {
    return <h2>我是About的內(nèi)容</h2>
  }
}

步驟四:編寫組件App

import React, { Component } from 'react'
import Home from './components/Home'
import About from './components/About'
import {Link,Route} from 'react-router-dom'

export default class App extends Component {
  render() {
    return (
      <div>
    <div className="row">
      <div className="col-xs-offset-2 col-xs-8">
        <div className="page-header"><h2>React Router Demo</h2></div>
      </div>
    </div>
    <div className="row">
      <div className="col-xs-2 col-xs-offset-2">
        <div className="list-group">
          {/* <a className="list-group-item" href="./about.html">About</a>
          <a className="list-group-item active" href="./home.html">Home</a> */}
          <Link className='list-group-item' to='/home'>Home</Link>
          <Link className='list-group-item' to='/about'>About</Link>
          
        </div>
      </div>
      <div className="col-xs-6">
        <div className="panel">
          <div className="panel-body">
            <Route path="/home"component={Home} />
            <Route path="/about"component={About} />
          </div>
        </div>
      </div>
    </div>
  </div>
    )
  }
}

其中關(guān)鍵代碼有三個(gè)部分:

關(guān)鍵代碼1:

import {Link,Route} from 'react-router-dom'

關(guān)鍵代碼2:

<Link className='list-group-item' to='/home'>Home</Link>
<Link className='list-group-item' to='/about'>About</Link>

在React中靠路由鏈接通過組件Link實(shí)現(xiàn)切換組件–編寫路由鏈接

關(guān)鍵代碼3:

<Route path="/home"component={Home} />
<Route path="/about"component={About} />

通過組件Route實(shí)現(xiàn)路由注冊(cè)

步驟五:編寫入口文件index.js

import React from 'react'
import ReactDOM from 'react-dom'
import {BrowserRouter} from 'react-router-dom'
import App from './App'

ReactDOM.render(
  <React.StrictMode>
    <BrowserRouter>
      <App/>
    </BrowserRouter>
  </React.StrictMode>,
  document.getElementById('root')
)

這里的App組件被BrowserRouter包裹, 使得整個(gè)應(yīng)用共用一個(gè)路由器。

查看效果:

第三十章 React的路由基本使用文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-436740.html


總結(jié)

  • 明確好界面中的導(dǎo)航區(qū)、展示區(qū)
  • 導(dǎo)航區(qū)的a標(biāo)簽改為Link標(biāo)簽:<link to="/xxxx">Demo</Link>
  • 展示區(qū)寫Route標(biāo)簽進(jìn)行路徑的匹配:<Route path='/xxxx' component={Demo}/>
  • <App/>的最外側(cè)包裹一個(gè)<BrowserRouter>或者<HashRouter>

到了這里,關(guān)于第三十章 React的路由基本使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【前端知識(shí)】React 基礎(chǔ)鞏固(三十二)——Redux的三大原則、使用流程及實(shí)踐

    【前端知識(shí)】React 基礎(chǔ)鞏固(三十二)——Redux的三大原則、使用流程及實(shí)踐

    單一數(shù)據(jù)源 整個(gè)應(yīng)用程序的state被存儲(chǔ)在一顆object tree 中,并且這個(gè)object tree 只存儲(chǔ)在一個(gè)store中; Redux并沒有強(qiáng)制讓我們不能創(chuàng)建多個(gè)Store,但是那樣做不利于數(shù)據(jù)維護(hù); 單一的數(shù)據(jù)源可以讓整個(gè)應(yīng)用程序的state變得方便維護(hù)、追蹤、修改; State是只讀的 唯一修改State的方法

    2024年02月15日
    瀏覽(31)
  • 第十章 Python第三方庫(kù)概覽

    10.1 Python第三方庫(kù)的獲取和安裝 Python第三方庫(kù)依照安裝方式靈活性和難易程度有三個(gè)方法: pip工具安裝、自定義安裝和文件安裝 。 10.1.1 pip工具安裝 最常用且最高效的Python第三方庫(kù)安裝方式是采用pip工具安裝。pip是Python官方提供并維護(hù)的在線第三方庫(kù)安裝工具。 使用pip安裝

    2024年02月07日
    瀏覽(23)
  • 算法訓(xùn)練第三十八天|動(dòng)態(tài)規(guī)劃理論基礎(chǔ)、509. 斐波那契數(shù) 、70. 爬樓梯 、 746. 使用最小花費(fèi)爬樓梯

    算法訓(xùn)練第三十八天|動(dòng)態(tài)規(guī)劃理論基礎(chǔ)、509. 斐波那契數(shù) 、70. 爬樓梯 、 746. 使用最小花費(fèi)爬樓梯

    參考:https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 動(dòng)態(tài)規(guī)劃是什么 動(dòng)態(tài)規(guī)劃,英文:Dynamic Programming,簡(jiǎn)稱DP,如果某一問題有很多重疊子問題,使用動(dòng)態(tài)規(guī)劃是最有效的。 所以 動(dòng)態(tài)規(guī)劃中每一個(gè)狀態(tài)一定是由上一個(gè)狀態(tài)推導(dǎo)出來(lái)的 ,這一

    2024年02月04日
    瀏覽(25)
  • 第三十章 Unity角色控制器 Character Controller

    第三十章 Unity角色控制器 Character Controller

    在我們之前的章節(jié)中,我們已經(jīng)了解了碰撞體和剛體。但是,對(duì)于剛體這個(gè)組件來(lái)講,有兩種使用方式。其一就是用它來(lái)模擬現(xiàn)實(shí)世界的移動(dòng)或碰撞效果(例如,門的開關(guān));其二就是使用代碼來(lái)控制物體移動(dòng)或碰撞(例如,角色的行走)。兩種方式使用場(chǎng)景不同而已。 本章

    2024年02月08日
    瀏覽(91)
  • 算法隨想錄第三十八天打卡| 理論基礎(chǔ) , 509. 斐波那契數(shù), 70. 爬樓梯 , 746. 使用最小花費(fèi)爬樓梯

    ?理論基礎(chǔ)? 無(wú)論大家之前對(duì)動(dòng)態(tài)規(guī)劃學(xué)到什么程度,一定要先看?我講的?動(dòng)態(tài)規(guī)劃理論基礎(chǔ)。? 如果沒做過動(dòng)態(tài)規(guī)劃的題目,看我講的理論基礎(chǔ),會(huì)有感覺?是不是簡(jiǎn)單題想復(fù)雜了?? 其實(shí)并沒有,我講的理論基礎(chǔ)內(nèi)容,在動(dòng)規(guī)章節(jié)所有題目都有運(yùn)用,所以很重要!?? 如果

    2024年01月18日
    瀏覽(26)
  • 《微服務(wù)實(shí)戰(zhàn)》 第三十章 分布式事務(wù)框架seata TCC模式

    《微服務(wù)實(shí)戰(zhàn)》 第三十章 分布式事務(wù)框架seata TCC模式

    第三十章 分布式事務(wù)框架seata TCC模式 第二十九章 分布式事務(wù)框架seata AT模式 本章節(jié)介紹分布式事務(wù)框架seata TCC模式,上一章節(jié)介紹seata以及集成到Springboot、微服務(wù)框架里。 一個(gè)分布式的全局事務(wù),整體是 兩階段提交 的模型。全局事務(wù)是由若干分支事務(wù)組成的,分支事務(wù)要

    2024年02月12日
    瀏覽(24)
  • 第三十章 控制到 XML 模式的映射 - Array of Classname

    本部分顯示了從啟用 XML 的類生成的 XML 架構(gòu)的一部分,此時(shí)該類包含定義為類名數(shù)組的屬性。例如,考慮以下屬性定義: 如果此屬性位于名為 Test.DemoArray1 的啟用 XML 的類中,則該類的 XML 架構(gòu)包含以下內(nèi)容: 以下規(guī)則管理類型的名稱: 對(duì)于 PropName 屬性,相應(yīng)的類型被命名

    2024年02月05日
    瀏覽(15)
  • 【正點(diǎn)原子STM32連載】第三十二章 DMA實(shí)驗(yàn) 摘自【正點(diǎn)原子】APM32E103最小系統(tǒng)板使用指南

    1)實(shí)驗(yàn)平臺(tái):正點(diǎn)原子APM32E103最小系統(tǒng)板 2)平臺(tái)購(gòu)買地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套實(shí)驗(yàn)源碼+手冊(cè)+視頻下載地址: http://www.openedv.com/docs/boards/xiaoxitongban 本章介紹APM32E103直接存儲(chǔ)訪問(DMA)的使用,DMA能夠在無(wú)CPU干預(yù)的情況下,實(shí)現(xiàn)外設(shè)與存儲(chǔ)器或存儲(chǔ)

    2024年02月22日
    瀏覽(20)
  • 【正點(diǎn)原子STM32連載】第三十三章 待機(jī)模式實(shí)驗(yàn) 摘自【正點(diǎn)原子】APM32F407最小系統(tǒng)板使用指南

    1)實(shí)驗(yàn)平臺(tái):正點(diǎn)原子stm32f103戰(zhàn)艦開發(fā)板V4 2)平臺(tái)購(gòu)買地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套實(shí)驗(yàn)源碼+手冊(cè)+視頻下載地址: http://www.openedv.com/thread-340252-1-1.html## 本章介紹APM32F407低功耗模式中的待機(jī)模式,進(jìn)入待機(jī)模式后,MCU內(nèi)部的電壓調(diào)壓器將斷開1.3V電源域

    2024年02月07日
    瀏覽(93)
  • 【正點(diǎn)原子STM32連載】第三十一章 待機(jī)模式實(shí)驗(yàn) 摘自【正點(diǎn)原子】APM32E103最小系統(tǒng)板使用指南

    1)實(shí)驗(yàn)平臺(tái):正點(diǎn)原子APM32E103最小系統(tǒng)板 2)平臺(tái)購(gòu)買地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套實(shí)驗(yàn)源碼+手冊(cè)+視頻下載地址: http://www.openedv.com/docs/boards/xiaoxitongban 本章介紹APM32E103低功耗模式中的待機(jī)模式,進(jìn)入待機(jī)模式后,MCU內(nèi)部的電壓調(diào)壓器將斷開1.3V電源域

    2024年01月22日
    瀏覽(158)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包