This article example shares the specific code of the vue project to achieve the login and registration effect for your reference. The specific content is as follows Main contentThe goal of this chapter: vue+element-ui completes registration and login 1. Effect display 2. View page: views Registration page effect realization: <template> <div class="login-section"> <!-- :rules="rules" --> <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 { rulesForm:{ name:'', password:'' }, rules: name:[ {required:true,message:'The name is not written',trigger:'blur'}, {min:1,max:5,message:'Length is between 3 and 5 characters'} ], password:[ {required:true,message:'The name is not written',trigger:'blur'}, {min:3,max:5,message:'Length is between 3 and 5 characters'} ] } }; }, 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> login.vue <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 { rulesForm:{ name:'', password:'' }, rules: name:[ {required:true,message:'The name is not written',trigger:'blur'}, {min:1,max:5,message:'Length is between 3 and 5 characters'} ], password:[ {required:true,message:'The name is not written',trigger:'blur'}, {min:3,max:5,message:'Length is between 3 and 5 characters'} ] } }; }, 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> Routing: index.js import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) import Store from '@/store' import {userInfo} from '@/service/api.js' import Home from '@/views/home/Home.vue' import Login from '@/views/user-login/index.vue' const router = new Router({ mode:"history", routes:[ { path:'/', name:"Home", title:"Home", component:Home }, { path:'/login', name:"login", title:"Login Page", component:Login, meta:{ login:true } } ] }); router.beforeEach( async (to,from,next) => { 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 is requiredif(isLogin){//Already logged in, directly pass if(data.error === 400){//The backend tells you that the login failednext({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; Summarize That’s all for today’s content. It’s not very good because there are still some imperfections. We will continue to improve it later! 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:
|
<<: Three ways to communicate between Docker containers
Free points Interviewer : Have you ever used Linu...
MultiTail is a software used to monitor multiple ...
Several parts of Compose deal with environment va...
Method 1 Copy code The code is as follows: documen...
Recently I changed Apache to nginx. When I moved ...
Hello everyone, I am Liang Xu. When using Linux, ...
SVG has been widely used in recent years due to i...
This article uses an example to describe how to u...
Introduction to XHTML tags <br />Perhaps you...
The ".zip" format is used to compress f...
Table of contents 1. Technology Selection 2. Tech...
<br />In order to clearly distinguish the ta...
Author | Editor Awen | Produced by Tu Min | CSDN ...
I wrote a jsp page today. I tried to adjust <di...
Table of contents 1. What is a doubly linked list...