美文网首页
vite2 + vue3 + vue-router4 + vue

vite2 + vue3 + vue-router4 + vue

作者: charmingcheng | 来源:发表于2021-11-27 10:21 被阅读0次

登录成功测试

  1. 在src/views目录下新建home.vue
  • home.vue
<template>
  <div v-show="token">
    已登录{{ token }}
  </div>
  <div>
    首页
  </div>
  
</template>

<script>
import { computed } from 'vue'
import { useStore } from 'vuex'
import { useRouter } from 'vue-router'

export default {
  setup() {
    const router = useRouter()
    const store = useStore()
    const token = computed(() => {return store.state.user.token})

    return {
      token
    }
  }
}
</script>

<style>

</style>
  1. 修改路由,添加后台首页路由
  • router/index.js
import { createRouter, createWebHistory } from "vue-router";

const routes = [
  {
    path: "/",
    redirect: "/home",
  },
  {
    path: "/login",
    name: "Login",
    component: () => import("@/views/login.vue"),
  },
  {
    path: "/home",
    name: "Home",
    component: () => import("@/views/home.vue"),
  },
];

const router = createRouter({
  history: createWebHistory(), //history模式使用HTML5模式
  routes,
});

export function resetRouter() {
  const newRouter = createRouter({
    history: createWebHistory(),
    routes,
  });

  router.matcher = newRouter.matcher; // reset router
}

// router.beforeEach(async(to, from, next) => {

// })

export default router;
  • 正常访问localhost:3000/home显示:


    image.png
  • 登录后跳转到/home显示:


    image.png

退出登录

在home.vue页面添加退出登录按钮

<template>
  <div v-show="token">
    已登录{{ token }}
    <el-button type="primary" @click="logout">退出登录</el-button>
  </div>
  <div>
    首页
  </div>
  
</template>

<script>
import { computed } from 'vue'
import { useStore } from 'vuex'
import { useRouter } from 'vue-router'
import Store from '@/store'

export default {
  setup() {
    const router = useRouter()
    const store = useStore()
    const token = computed(() => {return store.state.user.token})

    const logout = async () => {
      await Store.dispatch('user/logout')
      router.push(`/login`)   
    }

    return {
      token,
      logout,
    }
  }
}
</script>

<style>

</style>
image.png

点击退出登录后,清除登录状态,跳转到登录页面。

相关文章

网友评论

      本文标题:vite2 + vue3 + vue-router4 + vue

      本文链接:https://www.haomeiwen.com/subject/uixbjltx.html

      热点阅读