Vue导航栏,主页中的调用功能,vue”

u59ebvdq  于 2023-01-26  发布在  Vue.js
关注(0)|答案(2)|浏览(121)

我有一个导航栏项目"logout",我想调用Home.vue中的logout函数。Home.vue组件通过路由器控制。导航栏是子项,而Home.vue是父项吗?
这是我的App.vue-

<template>
  <div id="app">
    <Navbar />
    <router-view />
    <Footer />
    <footer>
      <cookie-law theme="base"></cookie-law>
    </footer>
  </div>
</template>

我已经尝试了StackOverflow中列出的所有选项,但没有成功。请给出一个例子或链接到适当的主题。
谢谢。

smdncfj3

smdncfj31#

根据应用程序设计和用户案例,用户可以从应用程序中的任何页面执行Logout。因此,注销功能应在主页面(App.vue)或公共组件(Navbar.vue)本身中全局可用。通过这样做,我们无需编写或调用每个组件的注销逻辑。
由于导航栏是应用程序中的一个通用组件,并且包含logout按钮,我认为最好的方法是在该组件本身中处理注销功能。
导航栏值**:**

<button @click="logout">Logout</button>

logout() {
  // Logout functionlity code. for ex. destroy session or cookie or reset any store data.
  // On success navigate the user to the login page 
}
qxsslcnc

qxsslcnc2#

我建议您将logout函数移到组件或App.vue中,您可以在vue中通过emit (component event)调用它。
示例:

    • 导航栏值**
<template>
  <div>
    <button @click="emitLogoutEvent">Logout</button>
  </div>
</template>

<script>
export default {
  methods: {
    emitLogoutEvent() {
      this.$emit("logout");
    }
  }
};
</script>
    • 应用程序版本**
<template>
  <div>
    <Navbar @logout="logout"/>
    <!-- other code -->
  </div>
</template>

<script>
export default {
  methods: {
    logout() {
      // code for logout function
    }
  }
};
</script>

相关问题