基于 NativeScript Vue Auth 的导航
NativeScript Vue Auth based Navigation
尝试了几个小时后,我想问一下,我怎样才能在我的应用程序中有一个简单的基于 Auth 的导航?
我的 vuex 中有一个由 auth 侦听器设置的 firebase auth 用户,到目前为止一切正常。
现在我只想在用户登录时显示 <Main />
屏幕,否则我想显示 <sign-in />
屏幕。
我尝试了很多 v-if
的解决方案,创建组件的导航等,但没有找到任何关于如何完成此操作的示例。
我如何想象它应该如何工作:App.vue
<template>
<Page>
<Frame v-if="user" id="main">
<main />
</Frame>
<Frame v-else>
<sign-in-page />
</Frame>
</Page>
</template>
有多种方法可以解决这个问题。我更喜欢的方法是创建一个使用 $navigateTo
或模态导航的自定义路由器。您应该将您的应用程序视为多个不同的页面。然后你的路由器可以是
let routes = {
navigate(instance, routeName, options) {
return instance.$navigateTo(routeName, options);
}
}
export default routes
然后在你的组件中
<script>
import routes from '~/router'; // Path to your router
router.navigate(this, LoginView, {}) // use in methods
</script>
有了这个基本思想,就可以添加 pre 和 post 导航规则和功能。您还可以集中所有路线并注册它们。这是一个导入,但它也可以是 vue 的插件。
您应该有 1 个登录页面、1 个加载页面、1 个主页...
当应用程序启动时,它总是会转到您决定根据 firebase 身份验证状态重新路由的加载。
尝试了几个小时后,我想问一下,我怎样才能在我的应用程序中有一个简单的基于 Auth 的导航?
我的 vuex 中有一个由 auth 侦听器设置的 firebase auth 用户,到目前为止一切正常。
现在我只想在用户登录时显示 <Main />
屏幕,否则我想显示 <sign-in />
屏幕。
我尝试了很多 v-if
的解决方案,创建组件的导航等,但没有找到任何关于如何完成此操作的示例。
我如何想象它应该如何工作:App.vue
<template>
<Page>
<Frame v-if="user" id="main">
<main />
</Frame>
<Frame v-else>
<sign-in-page />
</Frame>
</Page>
</template>
有多种方法可以解决这个问题。我更喜欢的方法是创建一个使用 $navigateTo
或模态导航的自定义路由器。您应该将您的应用程序视为多个不同的页面。然后你的路由器可以是
let routes = {
navigate(instance, routeName, options) {
return instance.$navigateTo(routeName, options);
}
}
export default routes
然后在你的组件中
<script>
import routes from '~/router'; // Path to your router
router.navigate(this, LoginView, {}) // use in methods
</script>
有了这个基本思想,就可以添加 pre 和 post 导航规则和功能。您还可以集中所有路线并注册它们。这是一个导入,但它也可以是 vue 的插件。
您应该有 1 个登录页面、1 个加载页面、1 个主页...
当应用程序启动时,它总是会转到您决定根据 firebase 身份验证状态重新路由的加载。