后台管理项目实践-登录界面


1:首先样式初始化 样式的重置

 npm install normalize.css 记得import

穿件文件写自己的样式

2:账号登录---组件 login-panel(登录面板)

---搭建登录页面

---(账号登录,手机号登录)两个tab的item切换----element-plus

---搭建输入框

3:账号登录逻辑 手机登录逻辑

借助 element-form element-form-item input 来构造结构 有前面两个的原因是因为方便做验证

表单

保存输入的内容-----响应式account对象(两个input分别对应name,passwrod)

怎么限制输入类型(验证输入)??---配置规则->告诉表单->表单自动验证-》 async-validator

所有规则写在一起传给表单(el-from)抽取规则(1:hook(里面有一些响应式数据) 2:配置)

登录验证 添加点击事件 handleLoginClick

---记住密码

1:v-model绑定CheckBox 

2:组件里面保存复选框状态

----账号的登录逻辑

1:告诉account页面(写逻辑的页面) 点击了立即登录获取组件对象( ref=accountRef绑定 accountRef=ref())调用里面的方法(loginAction)

获取组件的类型 >----拿到LoginAccount导出的真正类型

复习(ref函数 设置基本数据类型是响应式的 ref属性.value获取元素)

2:验证 

给el-form 绑定ref

formRef.value----elform绑定的组件对象 .validate方法 (valid-->true or false 为true里面写真的的登录逻辑

补充 传泛型

记住密码逻辑:

1:判断是否需要记住密码

传值 通过函数的参数来传 记得ref.value解构

需要记住:本地缓存

utils cache.ts

if(isKeePassword)

class LocalCache{

//保存缓存

 setCache(key:string,value:any){

 window.localStorage.setItem(key,JSON.stringify(value))

getCache(key:string){

const value= window.locakStorage.getItem(key)

if(value){

  return JSON.parse(value)

delete(key:string){

window.localStorage.removeItem(key)

clear(){

window.localStorage.clear()

 export dafault new LocalCache()

2:开始进行登录验证()Vuex---共享的数据 逻辑也放在Vuex里面

登录的逻辑---网络请求,拿到数据的处理

数据的保存

发送其他请求--请求当前用户的信息

拿到用户的菜单

跳到首页

-------设计Vuex

明确指定state类型

interface IRootState {

 name:string

age:number

store--login--login.ts

import {Module} from 'vuex'

interface ILoginState{

token:string

useInfo:any

const loginModule :Module< , >={

  namespace:true

  state()

    return{

      token:'' 

      useInfo:{} }

export default loginmodule

相关