1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

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

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yí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)景需求。


      當(dāng)前文章:使用react-router怎么實(shí)現(xiàn)一個(gè)路由切換動(dòng)畫(huà)-創(chuàng)新互聯(lián)
      轉(zhuǎn)載來(lái)源:http://www.ef60e0e.cn/article/giojs.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        双辽市| 安仁县| 盐亭县| 东乡族自治县| 印江| 彩票| 蕉岭县| 宽甸| 清流县| 江北区| 雷州市| 紫金县| 钟山县| 平舆县| 沿河| 崇义县| 锡林郭勒盟| 大冶市| 吴旗县| 青神县| 微博| 华亭县| 利辛县| 德江县| 巴彦淖尔市| 冕宁县| 喀喇沁旗| 紫金县| 陇川县| 牟定县| 开江县| 丹东市| 阜新市| 岚皋县| 英德市| 贺兰县| 新丰县| 呈贡县| 巴南区| 双牌县| 开平市|