真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用react-router怎么實(shí)現(xiàn)一個(gè)路由切換動(dòng)畫(huà)-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)使用react-router怎么實(shí)現(xiàn)一個(gè)路由切換動(dòng)畫(huà),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

創(chuàng)新互聯(lián)IDC提供業(yè)務(wù):溫江服務(wù)器托管,成都服務(wù)器租用,溫江服務(wù)器托管,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。

1.插件依賴

使用的插件是react-transition-group。先簡(jiǎn)單介紹一下動(dòng)畫(huà)插件的使用方式。

CSSTransition這個(gè)組件有兩個(gè)比較主要的屬性:key和in。

in:Boolean屬性其實(shí)可以理解為是否顯示當(dāng)前內(nèi)容節(jié)點(diǎn)。true則顯示,false則不顯示。

key:String這個(gè)屬性是配合TransitionGroup組件來(lái)使用的。在一般的列表組件中(列如 todolist),可以通過(guò)key來(lái)判斷列表中的子節(jié)點(diǎn)需要被插入還是移除,然后觸發(fā)動(dòng)畫(huà)。

2. Switch 組件

這個(gè)組件有一個(gè)很重要的屬性:location。同時(shí)這個(gè)屬性也是路由切換動(dòng)畫(huà)的關(guān)鍵所在。Switch組件的子組件(一般是 Route 和 Redirect)會(huì)根據(jù)當(dāng)前瀏覽器的location作為匹配依據(jù)來(lái)進(jìn)行路由匹配。但是如果Switch組件定義了location屬性,其中的子組件就會(huì)以定義的location作為匹配依據(jù)。

3.代碼部分

import React, { Component } from 'react'
import { TransitionGroup, CSSTransition } from 'react-transition-group'
import { Switch, Route, withRouter } from 'react-router-dom'

@withRouter
class Routes extends Component {
  render() {
    const location = this.props.location
    return (
      
        
          
            
            
          
        
      
    )
  }
}

export default Routes

4.原理分析

先確定需求:當(dāng)切換路由的時(shí)候,舊的路由內(nèi)容在一定時(shí)間內(nèi)過(guò)渡消失,新的路由內(nèi)容過(guò)渡顯示。

在這個(gè)需要里面有兩個(gè)重要的部分:

  • 過(guò)渡期間,會(huì)同時(shí)存在兩個(gè)節(jié)點(diǎn):新節(jié)點(diǎn)和舊節(jié)點(diǎn)

  • 舊節(jié)點(diǎn)應(yīng)該顯示舊的路由內(nèi)容,新的節(jié)點(diǎn)應(yīng)該顯示新的路由內(nèi)容

4.1 同時(shí)存在兩節(jié)點(diǎn)

剛剛提到的CSSTransitionkey屬性可以決定該節(jié)點(diǎn)是否需要顯示。

Router中的location屬性會(huì)在路由發(fā)生變化的時(shí)候,進(jìn)行更新,而location里面的key則可以作為CSSTransitionkey。

關(guān)于 history 對(duì)象,可以理解為一個(gè)數(shù)組,當(dāng)頁(yè)面的 location 發(fā)生變化時(shí),或者刷新頁(yè)面,history 就會(huì)push一個(gè)新的歷史信息。在這個(gè)歷史信息里面,有一個(gè)key屬性,用來(lái)區(qū)分不同的歷史記錄(跳轉(zhuǎn)新頁(yè)面或者是刷新頁(yè)面)

當(dāng)路由切換的時(shí)候,location對(duì)象就會(huì)改變,新的key會(huì)使得頁(yè)面重新渲染時(shí)出現(xiàn)兩個(gè)CSSTransition(新舊節(jié)點(diǎn))。

4.2 新舊節(jié)點(diǎn)對(duì)應(yīng)新舊路由內(nèi)容

如果只是配置key屬性,會(huì)發(fā)現(xiàn)舊的節(jié)點(diǎn)會(huì)去匹配新的路由內(nèi)容。這是因?yàn)?code>Route組件默認(rèn)根據(jù)當(dāng)前location進(jìn)行匹配。為了讓舊節(jié)點(diǎn)中的Route根據(jù)舊的location進(jìn)行匹配,就需要設(shè)置Switchlocation屬性。

以上就是使用react-router怎么實(shí)現(xiàn)一個(gè)路由切換動(dòng)畫(huà),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


分享標(biāo)題:使用react-router怎么實(shí)現(xiàn)一個(gè)路由切換動(dòng)畫(huà)-創(chuàng)新互聯(lián)
本文地址:http://weahome.cn/article/giojs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部