我正在使用最新的Framework7 Vue Webpack入门包。

我的默认页面('/')是登录页面。我的计划是在请求应用程序中的任何页面后立即运行xhr请求。


因此,我尝试将isLoggedIn()调用放入onF7Ready(f7)中。如果登录,我想我会用它来将用户带到主屏幕-self。$ f7router.navigate('/ home /');否则,我会将用户带到“登录”页面。然后我了解到$ f7router仅可在Route Components中访问。
然后我想我将把isLoggedIn()检查到每个页面的pageInit()中。所以我尝试将代码放在以下位置的login.vue文件中
on: {pageInit(e) {
$ f7router在这里可用,但是self。$ f7router.navigate('/ home /');不起作用。相同的self。$ f7router.navigate('/ home /');但是,如果我在同一个login.vue文件的伪方法之一中使用它,它确实可以工作。


即使以上代码确实起作用,也必须有一种更好的方法来检查用户是否已登录,然后以比我正在做的更好的方式进行操作。除('/')外,我所有的路由都需要认证。

谁能告诉我该如何处理这个非常标准的问题?非常感谢。

最佳答案

我发现self。$ f7router.navigate在pageInit()中不可用,但是,在pageBeforeIn()和在pageInit()之后的其他函数中却可用。

旁注:对于这种特殊用例,我发现pageInit()非常危险,因为每次您导航到该页面时,该页面都将运行AJAX请求,而不仅仅是在首次访问该应用程序时。

关于javascript - 如何在Framework7 Vue中使用身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48759204/

10-12 04:36