我正在尝试使用next.js
实现单例模式,但是它似乎没有按我预期的那样工作。这是我尝试实现它的示例。
viewModel.js
class ViewModel {
static _vm = null;
static get() {
if (ViewModel._vm === null) {
ViewModel._vm = new ViewModel();
}
return ViewModel._vm;
}
}
export default ViewModel;
view.jsx
import ViewModel from './viewModel';
const vm = ViewModel.get();
[基本上,我一直想要相同的实例,但是每次我到达以view.js
表示的页面时,都会创建一个新实例。代码分裂是此行为的原因还是其他原因,以及如何使我的代码按预期工作?
Okey,我想出了什么问题。单例模式没问题。问题在于我如何浏览应用程序。我在一个地方使用了next/link
,在另一个地方使用了useRouter
。在切换到next/link
并添加as
属性和href
之后,一切正常。