需求是登录页面用户输入的账号密码缓存到浏览器的localStorage里面,在用户登录成功后在localStorage存入账号密码的值,在登录页面mounted(){}的时候读取存到localStorage里面的账号密码,从未登录过的时候localStorage里面没有账户密码的字段属性,在这里要判断一下,有值再给页面上的账号密码赋值,没值就不赋值,关键部分代码如下:
-
- <input type="text" placeholder="账户" v-model="zhanghao" />
-
- <input type="password" placeholder="密码" v-model="password" />
-
-
- export default {
- name: 'LoginView',
- components: {
- },
- data(){
- return{
- zhanghao:"",//账号
- password:"",//密码
- loading:false,//是否显示加载中的效果
-
- }
- },
- methods:{
- //登录按钮点击
- btnLoginClick(){
- let that=this
-
- console.log("1-登录接口:/user/login 传参:",)
- console.log("username",that.zhanghao)
- console.log("password",that.password)
-
- //调后台接口
- that.loading=true //显示加载效果
- // 网络请求
- api.login({
- username:that.zhanghao,
- password:that.password,
- })
- .then(res=>{
- that.loading=false //关闭加载效果
- console.log("1-登录返回res",res)
- if(res.data.code==200){
- console.log("登录成功")
- //用户信息存储-----------
- localStorage.setItem('zhanghao',that.zhanghao) //账号密码存到浏览器缓存里面
- localStorage.setItem('password',that.password)
-
-
- }else{
- console.log("登录失败")
-
- }
-
- })
-
- }
-
-
- },
- mounted(){
- //从缓存里面读取用户信息,缓存中只存储账号密码,不登录,不存储id
- let zh=localStorage.getItem('zhanghao') //缓存中读取的账号
- let pd=localStorage.getItem('password') //缓存中读取的密码
-
- if(zh===null||zh=='null'){
- console.log("缓存的账号为空")
- }else{
- this.zhanghao=zh
- }
- if(pd===null||pd=='null'){
- console.log("缓存的密码为空")
- }else{
- this.password=pd
- }
- console.log("登录页面从缓存中读取账号密码和赋值后的账号密码:")
- console.log('zh',zh,"this.zhanghao",this.zhanghao)
- console.log('pd',pd,"this.password",this.password)
-
-
- }
- }