日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用react-router怎么實現(xiàn)一個路由切換動畫

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

10年積累的成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有紫云免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1.插件依賴

使用的插件是react-transition-group。先簡單介紹一下動畫插件的使用方式。

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

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

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

2. Switch 組件

這個組件有一個很重要的屬性:location。同時這個屬性也是路由切換動畫的關(guān)鍵所在。Switch組件的子組件(一般是 Route 和 Redirect)會根據(jù)當前瀏覽器的location作為匹配依據(jù)來進行路由匹配。但是如果Switch組件定義了location屬性,其中的子組件就會以定義的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.原理分析

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

在這個需要里面有兩個重要的部分:

  • 過渡期間,會同時存在兩個節(jié)點:新節(jié)點和舊節(jié)點

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

4.1 同時存在兩節(jié)點

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

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

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

當路由切換的時候,location對象就會改變,新的key會使得頁面重新渲染時出現(xiàn)兩個CSSTransition(新舊節(jié)點)。

4.2 新舊節(jié)點對應新舊路由內(nèi)容

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

以上就是使用react-router怎么實現(xiàn)一個路由切換動畫,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站名稱:使用react-router怎么實現(xiàn)一個路由切換動畫
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/pdejch.html