javascript - NextJs Singleton Router 实例与 useRouter() 有什么区别?
问题描述
我在我的应用程序中使用 NextJS。在那,对于路由,我们使用以下内容:
import React from "react";
import {useRouter} from "next/router";
const IndexPage: React.FC = (props) => {
const router = useRouter();
useEffect(() => {
router.replace('/home');
}, []);
return null;
};
这甚至是文档建议遵循的。他们利用 useRouter 钩子来接入路由器实例并用它做一些事情。
我一直在使用上述方法的替代方法。有一个单例路由器实例,它是 next/router 文件的默认导出。它允许我在不使用钩子进入路由器实例的情况下进行路由。
import React from "react";
import Router from "next/router";
const IndexPage: React.FC = (props) => {
useEffect(() => {
Router.replace('/home');
}, []);
return null;
};
我更喜欢第二种方法。但是,我在 NextJs 网站上没有看到这方面的文档。不确定这是否是进行路由的正确方法。我想知道这两种方法之间有什么区别,第二种方法将来会导致任何问题。
解决方案
推荐阅读
- firebase - 无法使用 Axios 和 NestJS 从数据库中获取项目
- csv - Octave:将结构中的数据写入 csv 文件
- javascript - 函数没有返回正确的状态
- ios - Delphi 10.4 [PAClient 错误] 错误:E0776 错误:exportArchive:配置文件“**”不包括签名证书“Apple Distribution:**”
- javascript - 为什么在 Javascript 中显示不切换?
- rust - 如何将一系列迭代器应用于数据?
- interface-builder - 将 objectIsForced 与绑定到共享用户默认控制器的控件一起使用的最佳实践是什么?
- javascript - Socket.io - 限制每个 IP 地址的连接
- assembly - TASM 打印数字数组
- java - 以编程方式更改所有 XML 属性 Android Studio