SSM项目实战-登录验证成功并路由到首页面,Vue3+Vite+Axios+Element-Plus技术

1、util/request.js

javascript 复制代码
import axios from "axios";

let request = axios.create({
    baseURL: "http://localhost:8080",
    timeout: 50000
});

export default request

2、api/sysUser.js

javascript 复制代码
import request from "../util/request.js";

export const login = (data) => {
    return request.post('/sysUser', data);
}

3、components/Login.vue

html 复制代码
<script setup>

</script>

<template>
  <div class="common-layout">
    <el-container>
      <el-header height="120px">&nbsp;</el-header>
      <el-container>
        <el-aside width="36%">&nbsp;</el-aside>
        <el-container>
          <el-main>
            <el-form :model="form" label-width="120px">
              <el-form-item label="用户名:">
                <el-input v-model="form.username" input-style="width:200px"/>
              </el-form-item>
              <el-form-item label="密&nbsp&nbsp码:">
                <el-input
                    v-model="form.userPwd"
                    type="password"
                    placeholder="Please input password"
                    show-password
                    input-style="width:200px"
                />
              </el-form-item>

              <el-form-item>
                <el-button type="primary" @click="doLogin">登录</el-button>
                <el-button>注册</el-button>
              </el-form-item>
            </el-form>
          </el-main>
          <el-footer>&nbsp;</el-footer>
        </el-container>
      </el-container>
    </el-container>
  </div>
</template>

<script lang="ts" setup>
import {reactive} from 'vue'
import {login} from "../api/sysUser.js";
import router from "../router/router.js";

// do not use same name with ref
const form = reactive({
  username: 'lina',
  userPwd: '123456',
})

const doLogin = async () => {
  let response = await login(form);
  let {code, flag, data, msg} = response.data;
  //console.log(data)
  if (code === 200 && flag) {
     await router.push('/index');
  }
}
</script>

4、router.push()

在Vue.js 3中,router.push仍然是一个非常重要的方法,用于导航到新的路由。这是Vue Router库的一部分,用于管理应用程序的路由。

router.push的主要作用是:

  1. 导航到新路由:当你在应用程序中想要导航到新的页面或者路由时,可以使用router.push。你可以传递一个路由配置对象,或者一个字符串路径作为参数。
  2. 编程式导航:与<router-link>这样的HTML标签相比,router.push是一种编程式导航的方式。这意味着你可以在JavaScript代码中动态地决定要导航到的路由。
  3. 处理回退:如果用户尝试访问他们之前访问过的页面,并且没有新的路由可供导航,那么router.push会处理回退,并导航到前一个路由。
  4. 处理重定向:你可以使用router.push来重定向到一个新的路由,即使这个路由在当前的路由配置中不存在。

下面是一个使用router.push的简单示例:

javascript 复制代码
import { router } from './router'  
  
// 通过传递一个字符串路径进行导航  
router.push('/home')  
  
// 通过传递一个路由配置对象进行导航  
router.push({ path: '/user' })

请注意,在Vue3中,你需要使用createWebHistory()来创建一个HTML5 history对象,并传递给Vue Router的构造函数,以便能够使用router.push进行导航。

相关推荐
行思理15 分钟前
UniApp 从Vue2升级为Vue3需要注意哪些方面
javascript·vue.js·uni-app·vue3·vue2
唯之为之2 天前
vue3项目部署到Github
vue·github·pnpm·vue3·vite
一雨方知深秋3 天前
vue3 项目中使用git
css·git·gitee·html·vue3
陈逸子风3 天前
.net core8 使用Swagger(附当前源码)
vue3·webapi·权限·流程
奶昔不会射手3 天前
vue3项目,本地页面正常显示,打包后页面空白
vue3·vue-router
Modify_QmQ3 天前
leaflet【十】实时增加轨迹点轨迹回放效果实现
vue3·leaflet·轨迹回放·实时增加轨迹
开心小老虎4 天前
vue3_对接腾讯_实时音视频
vue3·实时音视频·腾讯
xiezhr5 天前
喜欢干净简洁音乐播放器的朋友看过来
vue·github·vue3·开源软件·音乐播放器·网易云音乐
williamdsy5 天前
【vite-plugin-vuetify】自动导入 vuetify 组件和指令
vite·plugin·vuetify·自动导入
鱼是一只鱼啊8 天前
.NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
.netcore·vue3·图片上传·el-upload