在 VUE 3 框架中的 created() 生命周期方法中切换 v-if 变量

Toggle v-if variable inside created() lifecycle method in VUE 3 framework

我有一个组件,其中有 3 个按钮。 2 最初是可见的

<template>
  <button v-show="!showLogout" @click="login('google', 'profile, email')">
    Google
  </button>

  <button v-show="!showLogout" @click="login('facebook', 'email')">
    Facebook
  </button>

  <button v-show="showLogout" @click="logout()">
    Log out
  </button>

</template>.

然后我在 data() 中有一个数据变量

data() {
return {
  showLogout: false
}

在设置中,我引入了 HelloJS,在 created() 中,我添加了一个侦听器,用于切换变量

 setup() {
    return { hello }
  },



 created() {
    hello.on('auth.login', function(auth) {
      this.showLogout = true
    })
  }

但它不会重新呈现按钮(隐藏 google 和 facebook 并显示注销)。

如何让它像这样工作?

只需使用设置挂钩来定义您的数据属性,例如:

import {ref} from "vue"
...
 setup() {
     const showLogout= ref(false)
   
     hello.on('auth.login', function(auth) {
       showLogout.value = true
    })

    return { showLogout}
  },