Home > react-nav-router > NavRouter
NavRouter variable
Nav 路由控制器组件
职责: 1. 订阅 Router 的路由栈变化,驱动视图重渲染 2. 把路由栈交给 NavStack() 负责堆叠渲染与过渡动画 3. 为每个路由视图注入 NavRouteContext,让页面组件可通过 useNavRoute() 读取当前路由、调用 navigateTo / navigateBack
设计说明: - 使用 useSyncExternalStore 订阅 router: · 天然解决 React 18 并发模式下 useEffect 订阅时机晚于首次 render 导致丢更新的问题 · 订阅函数 subscribe 与 router 绑定,router 不变则订阅不会重挂 - 订阅函数使用 useCallback 稳定引用,避免 StrictMode 等场景下 subscribe 引用变化触发重复订阅 - navigate 方法对外暴露的引用在同一个 router 实例上是稳定的, 因此 Context value 的 navigate 部分用 useMemo 固化, 降低 Context 消费者(AppAside 等)不必要的重渲染
Signature:
typescript
NavRouter: React__default.NamedExoticComponent<NavRouterProps>