基于 NativeScript Vue Auth 的导航

Posted

技术标签:

【中文标题】基于 NativeScript Vue Auth 的导航【英文标题】:NativeScript Vue Auth based Navigation 【发布时间】:2020-11-10 16:49:50 【问题描述】:

尝试了几个小时后,我想在这里问一下,如何在我的应用程序中拥有一个简单的基于身份验证的导航?

我的 vuex 中有一个由身份验证侦听器设置的 firebase 身份验证用户,到目前为止一切正常。

现在我只想在用户登录时显示<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>

【问题讨论】:

【参考方案1】:

有多种方法可以解决此问题。我更喜欢的方法是创建一个使用$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>

有了这个基本概念,就可以添加前后导航规则和功能。您还可以集中所有路由并注册它们。这里是导入,但也可以是 vue 的插件。

您应该有 1 个登录页面、1 个加载页面、1 个主页,...

当应用启动时,它总是会进入加载,您决定根据 Firebase 身份验证状态重新路由。

【讨论】:

以上是关于基于 NativeScript Vue Auth 的导航的主要内容,如果未能解决你的问题,请参考以下文章

Nativescript-vue 监视道具

是否可以将 vue-flipclock 与 Nativescript Vue 应用程序一起使用

如何更改 nativescript-vue 中的 RadDataForm 样式? (Nativescript-Vue)

如何在 Nativescript-Vue 中使用 nativescript-drawingpad?

无法在 nativescript vue 中导入 @nota/nativescript-webview-ext/vue

nativescript-vue 的 nativescript-fonticon