Navigator 是一个“位置改变器”;它用于跳转到不同的位置。

每个 history 实例都符合 Navigator 接口,但这种区分主要在底层 <Router> API 中很有用,在底层 API 中,location 和 navigator 都必须单独提供,以避免在启用 suspense 的应用中,如果 action 和/或 location 直接从 history 实例中读取时可能发生的“撕裂”现象。

interface Navigator {
    createHref: ((to: To) => string);
    encodeLocation?: ((to: To) => Path);
    go: ((delta: number) => void);
    push(to: To, state?: any, opts?: NavigateOptions): void;
    replace(to: To, state?: any, opts?: NavigateOptions): void;
}

属性

createHref: ((to: To) => string)

类型声明

encodeLocation?: ((to: To) => Path)

类型声明

    • (to): Path
    • 以与 window.history 相同的方式编码 location(对于内存历史记录是无操作),以确保我们的数据路由器的 PUSH/REPLACE 导航行为与 POP 相同

      参数

      • to: To

        未编码的路径

      返回 Path

go: ((delta: number) => void)

类型声明

    • (delta): void
    • 在历史堆栈中相对于当前索引向后/向前导航 n 个条目。例如,“后退”导航将使用 go(-1)。

      参数

      • delta: number

        堆栈索引中的 delta 值

      返回 void

方法