This article example shares the specific code of VUE to achieve registration and login effects for your reference. The specific content is as follows 1. Effect display2. Registration effect realization<template> <div class="login-section"> <el-form label-position="top" label-width="100px" class="demo-ruleForm" :rules="rules" :model="rulesForm" status-icon ref="ruleForm" > <el-form-item label="username" prop="name"> <el-input type="text" v-model="rulesForm.name"></el-input> </el-form-item> <el-form-item label="password" prop="password"> <el-input type="password" v-model="rulesForm.password"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')" >Submit</el-button> <el-button >Reset</el-button> </el-form-item> </el-form> </div> </template> <script> import {register} from '@/service/api'; export default { data() { return { rulesForm:{ name:'', password:'' }, rules: name:[ {required:true,message:'Please enter your name',trigger:"blur"}, {min:1,max:5,message:"length 3-5",trigger:"blur"} ], password:[ {required:true,message:'Please enter your password',trigger:"blur"}, {min:3,max:5,message:"length 3-5",trigger:"blur"} ] } }; }, methods: { submitForm(formName){ this.$refs[formName].validate((valid)=>{ if(valid){ //If the check passes, send the username and password to the backend register({ name: this.rulesForm.name, password: this.rulesForm.password, }).then((data)=>{ console.log(data) if(data.code === 0){ localStorage.setItem('token',data.data.token); window.location.href= '/'; } if(data.code === 1){ this.$message.error(data.message) } }); }else{ console.log("error submit!!"); return false; } }); } } } </script> <style lang="stylus"> .login-section padding 0px 20px </style> 3. Login page implementation<template> <div class="login-section"> <el-form label-position="top" label-width="100px" class="demo-ruleForm" :rules="rules" :model="rulesForm" status-icon ref="ruleForm" > <el-form-item label="username" prop="name"> <el-input type="text" v-model="rulesForm.name"></el-input> </el-form-item> <el-form-item label="password" prop="password"> <el-input type="password" v-model="rulesForm.password"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">Submit</el-button> <el-button>Reset</el-button> </el-form-item> </el-form> </div> </template> <script> import {login} from '@/service/api'; export default { data() { return { //Object for storing data rulesForm:{ name:'', password:'' }, rules: name:[ {required:true,message:'Please enter your name',trigger:"blur"}, {min:1,max:5,message:"length 3-5",trigger:"blur"} ], password:[ {required:true,message:'Please enter your password',trigger:"blur"}, {min:3,max:5,message:"length 3-5",trigger:"blur"} ] } }; }, methods: { submitForm(formName){ this.$refs[formName].validate((valid)=>{ if(valid){ //If the check passes, send the username and password to the backend login({ name: this.rulesForm.name, password: this.rulesForm.password, }).then((data)=>{ console.log(data) if(data.code === 0){ localStorage.setItem('token',data.data.token); window.location.href= '/'; } if(data.code === 1){ this.$message.error(data.message) } }); }else{ console.log("error submit!!"); return false; } }); } } } </script> <style lang="stylus"> .login-section padding 0px 20px </style> 4. Routing jump implementationimport Vue from 'vue' import Router from 'vue-router' Vue.use(Router) import Store from '@/store' import {userInfo} from '@/service/api.js' import Login from '@/views/user-login/index.vue' const router = new Router({ mode:"history", routes:[ { path:'/login', name:"login", title:"Login Page", component:Login, meta:{ login:true } } ] }); //Route guard router.beforeEach( async (to,from,next) => { /* Some routes require login, to determine the login status 1. Not logged in: jump to the login page 2. Login: directly enter Some routes do not require login, directly enter ps: whether to log in --meta */ const token = localStorage.getItem('token'); const isLogin = !!token; //When entering the route, you need to send a token to the backend to verify whether it is legal const data = await userInfo(); Store.commit('chageUserInfo',data.data) if(to.matched.some(item => item.meta.login)){//Login requiredconsole.log("Login required"); if(isLogin){//Already logged in, directly pass if(data.error === 400){//The backend tells you that the login failed next({name:'login'}); localStorage.removeItem('token'); return; } if(to.name === 'login'){ next({name:'home'}); }else{ next(); } return; } if(!isLogin && to.name === 'login'){//Not logged in, but going to the login page next(); } if(!isLogin && to.name !== 'login'){//Not logged in, not the login page next({name:'login'}); } }else{ next(); } }) export default router; The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: How to restore a single database or table in MySQL and possible pitfalls
>>: Detailed explanation of the implementation process of building a kernel tree in Ubuntu 12.04
This article shares the specific code of js to im...
This article example shares the specific code of ...
A brief description of environment variable confi...
This article shares with you how to install the M...
Nowadays, cross-platform development technology i...
1. flex-grow, flex-shrink, flex-basis properties ...
Copy code The code is as follows: <div style=&...
Today, when testing the null value, I found a sma...
This article shares the specific code of jQuery t...
Table of contents 1. Original value and reference...
This article shares the specific code for impleme...
Today, when I was writing a small program, I used...
Preface In Java programming, most applications ar...
The earliest computers could only use ASCII chara...
The default storage directory of mysql is /var/li...