项目记录
登陆退出
通过vue ui新建项目 添加element-ui拓展
梳理项目结构
按需导入 在element.js中import Vue.use使用
字体图标的使用
- 将font文件夹和style.css放入assets
- main.js引用style.css 在style.css中找到小图标的名字
- class中使用 如:prefix-icon=”icon-shocked”
表单绑定:
- v-model
- data中定义loginForm
- 用户名密码使用v-model双向绑定
表单添加验证规则
- 为el-form通过属性绑定指定rules
- 定义rules
- 为不同的表单通过prop指定验证规则 注:加给item
重置功能
- 拿到表单实例对象 通过为表单添加ref=’ ‘,里面的值就是组件的实例对象
- this.$refs.loginFormRef.resetFields();
登陆弹窗功能
- element.js中import {Message} from “element-ui”,并且在原型上定义Vue.prototype.$message=Message
- 用this.$message即可调用
登陆成功之后处理
- 将登录成功之后的toke 保存到sessionStorage中,因为sessionStorage是会话期存储机制,,localStorage是持久化存储机制
- 项目中除了登陆之外的API接口,必须在登录之后才能访问
- token只应在当前网站打开期间生效
- 通过编程式导航跳转到后台主页,路由地址this.$router.push(‘/home’)
- 路由导航守卫 beforeEach
- 将登录成功之后的toke 保存到sessionStorage中,因为sessionStorage是会话期存储机制,,localStorage是持久化存储机制
1 | //挂载路由导航守卫 |
退出 功能 清空token, 跳转到登录页
window.sessionStorage.clear() this.$router.push('/login') <!--hexoPostRenderEscape:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">## 主页</span><br><span class="line"></span><br><span class="line">* element.js引入</span><br><span class="line"></span><br></pre></td></tr></table></figure>:hexoPostRenderEscape--> Container, Header, Aside, Main, Menu, Submenu, MenuItem, MenuItemGroup <!--hexoPostRenderEscape:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">* 通过axios拦截器添加token验证</span><br><span class="line"></span><br><span class="line">* ```javascript</span><br><span class="line"> axios.interceptors.request.use(config=>{</span><br><span class="line"> config.headers.Authorization=window.sessionStorage.getItem('token')</span><br><span class="line"> //必须 return config</span><br><span class="line"> return config</span><br><span class="line"> })</span><br></pre></td></tr></table></figure>:hexoPostRenderEscape-->