原文链接
代码地址:https://github.com/Snowstorm0...
1 创立我的项目
关上cmd,输出ui命令:
vue ui
若没有反馈,可能是版本太低,须要卸载后重装:
npm uninstall vue-cli -g #卸载npm install @vue/cli -g #装置
执行ui命令胜利后,会呈现提醒:
Starting GUI...
Ready on http://localhost:8000
并会主动关上页面:
创立名为SpringAndVue-vue
的我的项目,预设抉择“手动”;性能开启 Babel、Router、Vuex、Linter/Formatter;配置抉择“ESLint with error prevention only”;版本倡议应用 “vue2.0”。创立新我的项目。
通过cd
进入目录,启动我的项目:
npm run serve
2 装置插件
2.1 element-ui
关上cmd,输出ui命令:
vue ui
在插件项搜寻,并点击装置。
vue2.0 抉择装置 “vue-cli-plugin-element”;vue3.0 抉择装置 “vue-cli-plugin-element-plus”。
2.2 axios
Terminal装置axios,每个新我的项目都须要装置:
# vue-cli2.0命令npm install axios# vue-cli3.0命令npm add axios
2.3 mockjs
Terminal装置mockjs
npm install mockjs
3 增加性能
3.1 login
创立 login.vue页面:
<template> <div class="loginbBody"> <div class="loginDiv"> <div class="login-content"> <h1 class="login-title">用户登录</h1> <el-form :model="loginForm" label-width="100px" :rules="rules" ref="loginForm"> <el-form-item label="名字" prop="name"> <el-input style="width: 200px" type="text" v-model="loginForm.name" autocomplete="off" size="small"></el-input> </el-form-item> <el-form-item label="明码" prop="password"> <el-input style="width: 200px" type="password" v-model="loginForm.password" show-password autocomplete="off" size="small"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="confirm">确 定</el-button> </el-form-item> </el-form> </div> </div> </div></template><script> export default { name: "login", data(){ return{ loginForm:{ name:'', password:'' }, // 输出信息长度验证 rules:{ name: [ { required: true, message: '请输出用户名', trigger: 'blur' }, { min: 2, max: 5, message: '用户名长度在 2 到 5 个字符', trigger: 'blur' } ], password: [ { required: true, message: '请输明码', trigger: 'blur' }, { min: 2, max: 5, message: '明码长度在 2 到 5 个字符', trigger: 'blur' } ] } } }, methods:{ // 登录后跳转到主页 confirm(){ this.$refs.loginForm.validate((valid) => { if (valid) { //valid胜利为true,失败为false //去后盾验证用户名明码,并返回token this.$axios.post('/login',this.loginForm).then(res=>{ console.log(res.data) if(res.data.state==1){ //存储token到本地 this.$store.commit("SET_TOKEN",res.data.vData.token); //跳转到主页 this.$router.replace('/home'); }else{ alert('用户名或明码谬误!'); return false; } }); } else { console.log('校验失败'); return false; } }); } } }</script><style scoped > .loginbBody { width: 100%; height: 100%; background-color: #B3C0D1; } .loginDiv { position: absolute; top: 50%; left: 50%; margin-top: -200px; margin-left: -250px; width: 450px; height: 330px; background: #fff; border-radius: 5%; } .login-title { margin: 20px 0; text-align: center; } .login-content { width: 400px; height: 250px; position: absolute; top: 25px; left: 25px; }</style>
3.2 配置路由
在router.js中配置一级路由:
{ path: '/login', name: '登录', component: () => import(/* webpackChunkName: "user" */ '../views/login.vue') }
3.3 mockjs 模仿后盾
在没有后端代码的状况下,能够应用 mockjs 模仿后盾数据。
咱们应用 mockjs 模仿后盾登录验证,并返回token。
咱们设置登录的用户名和明码都是admin
。
在 src 下新建 mock 文件夹,在 mock 文件夹中新建 mock.js ,内容如下:
//引入 npm 装置的 mockjsconst Mock = require('mockjs') // 获取 mock.Random 对象const Random = Mock.Random;// 登录,此地址与login登录地址对应Mock.mock('/login','post', (param)=>{ let state=0; let body = JSON.parse(param.body); console.log(body) let data; //模仿用户名和明码都是 admin if(body.name=='admin'&&body.password=='admin'){ state=1; data = Mock.mock({ "token": "@guid()",//模仿token "name": "@cname",//随机生成中文名字 }); } return{ "state":state, "vData":data }});//退出Mock.mock('/logout','post', ()=>{ return {state:1}});
3.4 storejs
在 src/store/index.js 中增加 Vuex.Store 的属性:
export default new Vuex.Store({ state: { token: '', username: '代码的路' }, getters: { }, mutations: { SET_TOKEN(state, token){ state.token = token ; localStorage.setItem("token",token); }, resetState(state){ state.token = ''; localStorage.clear(); } }, actions: { }, modules: { }})
4 性能实现
在浏览器输出地址:http://localhost:8080/#/login
能够呈现登录界面:
输出用户名和明码 admin,即可进入主页:
点击头像呈现退出按钮,能够回到登录界面:
学习更多编程常识,请关注我的公众号:
代码的路