Knockout 如何保持状态?

How does Knockout maintain state?

我是 Knockout JS 的新手,正在开发小型单页应用程序。我发现了一些很好的例子,并观察到即使在保存页面并重新加载数据后,其他控件也没有受到影响。他们的数据不会丢失。

另外,我在Page1上填写了一些详细信息并移至Page2,在那里我做了一些操作甚至保存了数据然后返回Page1,但我仍然找到了在移至Page2之前输入的数据。

我想知道它是如何保持状态的?我找不到任何文章或类似的东西。任何人都可以提示它是如何工作的,我们如何保持状态?

JavaScript 应用程序通常会在用户离开或关闭 tab/window 后失去其状态。 KnockoutJS 本身没有什么特别的东西可以防止状态丢失的发生。

如果您拥有真正的 SPA,则用户永远不会 "navigates away" 来自 SPA。它只是在 SPA 内导航,这在用户体验上可能相似,但从技术角度来看却完全不同。

即使使用 SPA,用户也可以离开 SPA 并稍后返回。与非 SPA 应用程序类似,代码将需要某种机制来在页面或 SPA 加载期间保持状态。

同样,KO 对此没有什么特别之处。您的应用需要代码(或插件)来处理这个问题。查看 and/or 自己动手构建代码。如果您的代码有具体问题,您可以随时返回 SO 并提出具体问题。