我正在尝试使用 predix 在聚合物上构建一个简单的应用程序,我面临的问题是:当页面重新加载时,变量返回到它们的初始状态,我正在使用这些变量来显示/隐藏导航到其他页面的内容( .html 文件)。我有一个主要的 .html 文件,其中声明了变量并具有到所有文件的路由。
问题:
有什么方法可以防止这种情况?
当我计划构建另一个需要用户登录和退出的更大更复杂的应用程序时,如何才能更好地做到这一点?
我正在尝试使用 predix 在聚合物上构建一个简单的应用程序,我面临的问题是:当页面重新加载时,变量返回到它们的初始状态,我正在使用这些变量来显示/隐藏导航到其他页面的内容( .html 文件)。我有一个主要的 .html 文件,其中声明了变量并具有到所有文件的路由。
问题:
有什么方法可以防止这种情况?
当我计划构建另一个需要用户登录和退出的更大更复杂的应用程序时,如何才能更好地做到这一点?
您需要存储在客户端上的任何信息都应该写在localStorage中。我个人更喜欢使用redux并将我的状态存储在 localStorage 中。有了这个,我的用户可以继续在他们停止的地方工作。身份验证是实现Auth0提供的刷新令牌机制所需的其他内容。
首先,您为什么需要重新加载页面,或者您是否在询问用户可能重新加载页面的原因?使用聚合物,它是一个单视图应用程序,页面永远不应该重新加载,而是在当前页面内切换内容。
也就是说,由于您要求替代方案,您还可以使用路由器推送到 window.history 并将更新的变量存储在那里。
window.history.pushState({'navigate': true, 'url': url, 'extra': extra}, 'FSport', url);
window.history.replaceState({'navigate': true, 'url': url, 'extra': extra}, 'FSport', url);
我不知道当前路由器在 Polymer 中是如何工作的,因为我们必须编写自己的路由器,因为当我们开始使用 Polymer 时该元素不存在。
如果您决定保存在 localStorage 中,还请记住您通过使用 localforage 获得了对象的 indexDb。尽管它比 localStorage 慢,但您也可以从处理 Promise(异步数据获取)中受益。