- 深入理解React Router:從原理到實(shí)踐
- 李楊韜
- 335字
- 2021-04-16 16:10:44
2.4 memoryHistory
2.4.1 創(chuàng)建memoryHistory
可通過(guò)調(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屬性用來(lái)判斷跳轉(zhuǎn)位置n是否可以跳轉(zhuǎn)。

- Objective-C應(yīng)用開(kāi)發(fā)全程實(shí)錄
- Java系統(tǒng)分析與架構(gòu)設(shè)計(jì)
- TypeScript圖形渲染實(shí)戰(zhàn):基于WebGL的3D架構(gòu)與實(shí)現(xiàn)
- Python編程與幾何圖形
- PostgreSQL Replication(Second Edition)
- 快速念咒:MySQL入門指南與進(jìn)階實(shí)戰(zhàn)
- 速學(xué)Python:程序設(shè)計(jì)從入門到進(jìn)階
- 超好玩的Scratch 3.5少兒編程
- Get Your Hands Dirty on Clean Architecture
- Python數(shù)據(jù)科學(xué)實(shí)踐指南
- 游戲設(shè)計(jì)的底層邏輯
- Software Architecture with Python
- JavaScript語(yǔ)法簡(jiǎn)明手冊(cè)
- 測(cè)試架構(gòu)師修煉之道:從測(cè)試工程師到測(cè)試架構(gòu)師(第2版)
- Unity3D高級(jí)編程:主程手記