- 深入理解React Router:從原理到實(shí)踐
- 李楊韜
- 2字
- 2021-04-16 16:10:43
2.4 memoryHistory
2.4.1 創(chuàng)建memoryHistory
可通過調(diào)用createMemoryHistory創(chuàng)建memoryHistory:

對(duì)于內(nèi)存路由,其運(yùn)行環(huán)境通常不在瀏覽器內(nèi),一般作為測(cè)試使用或如React Native原生環(huán)境。在創(chuàng)建memoryHistory時(shí),除了history配置,如keyLength、getUserConfirmation,還可傳入initialEntries、initialIndex,其聲明如下:

注意,basename在memoryHistory中不被支持。
initialEntries類似于Browser Router或Hash Router的歷史棧,它確定了初始化的棧內(nèi)容。由于是內(nèi)存路由,這個(gè)歷史棧僅能由history庫(kù)進(jìn)行記錄。initialIndex表示初始的棧指針位置。它們默認(rèn)的值如下:

initialEntries的默認(rèn)值為擁有初始入口“/”的一個(gè)棧記錄,initialIndex的默認(rèn)值為0。
對(duì)于memoryHistory,其除了通用的history的屬性,還多出index、entries和canGo屬性。

entries為歷史棧數(shù)組,比起browserHistory與hashHistory,memoryHistory能獲取所有的歷史記錄,如上一個(gè)導(dǎo)航地址、第一個(gè)導(dǎo)航地址等。index為當(dāng)前歷史棧指針的指針位置,需要獲取當(dāng)前的地址,可從history.entries[history.index]中獲取,其也等價(jià)于history.location。history.length即等價(jià)于entries.length。對(duì)于memoryHistory,其canGo屬性用來判斷跳轉(zhuǎn)位置n是否可以跳轉(zhuǎn)。

- 新編Visual Basic程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)教程
- Getting Started with ResearchKit
- Java EE框架整合開發(fā)入門到實(shí)戰(zhàn):Spring+Spring MVC+MyBatis(微課版)
- R的極客理想:工具篇
- Web程序設(shè)計(jì)(第二版)
- C程序設(shè)計(jì)案例教程
- RabbitMQ Essentials
- R用戶Python學(xué)習(xí)指南:數(shù)據(jù)科學(xué)方法
- Arduino可穿戴設(shè)備開發(fā)
- Python大規(guī)模機(jī)器學(xué)習(xí)
- Mastering PowerCLI
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)案例教程(第二版)
- Developing Java Applications with Spring and Spring Boot
- PHP高性能開發(fā):基礎(chǔ)、框架與項(xiàng)目實(shí)戰(zhàn)
- Selenium自動(dòng)化測(cè)試實(shí)戰(zhàn):基于Python