vue展示信息卡片_vue实现登录和个人信息组件展示
最近在写一个重构node社区的小项目,碰到了登录的问题,实现思路如下:
1.获取用户表单信息,使用axios提交,提交成功后,把数据存在cookie,以便后续操作。
2.其中有个人信息的页面展示,获取cookie信息,判断用户是否登录,如果登录则显示内容,未登录则跳转到登录页面,所以个人信息的页面可以使用路由守卫
搜索资料时有看到这种写法,就是经过判断后去改变的动态路由来决定跳转到哪个组件,感觉稍显麻烦。
3.退出操作,清除cookie
可以把操作cookie的代码放到一个单独的src/utils/cookie.js文件,utils这个文件夹可以放一些工具类的文件
cookie.js
//获取cookie
export function getCookie(name){
var cookieName = encodeURIComponent(name) + "=",
cookieStart = document.cookie.indexOf(cookieName),
cookieValue = null;
if (cookieStart > -1){
var cookieEnd = document.cookie.indexOf(";", cookieStart);
if (cookieEnd == -1){
cookieEnd = document.cookie.length;
}
cookieValue = decodeURIComponent(document.cookie.substring(cookieStart
+ cookieName.length, cookieEnd));
}
return cookieValue;
}
//设置cookie
export function setCookie(name, value, expires, path, domain, secure) {
var cookieText = encodeURIComponent(name) + "=" +
encodeURIComponent(value);
if (expires instanceof Date) {
cookieText += "; expires=" + expires.toGMTString();
}
if (path) {
cookieText += "; path=" + path;
}
if (domain) {
cookieText += "; domain=" + domain;
}
if (secure) {
cookieText += "; secure";
}
document.cookie = cookieText;
}
//删除cookie
export function delCookie(name, path, domain, secure){
setCookie(name, "", new Date(0), path, domain, secure);
}
后面发现vue有一个关于操作cookie的插件js-cookie,安装一下就可以使用了
例如
import Cookie from 'js-cookie'
const TokenKey='Admin-Token'
export function getToken(){
return Cookie.get(TokenKey)
}
export function setToken(token){
return Cookie.set(TokenKey,token)
}
export function removeToken(){
return Cookie.remove(TokenKey)
}
登录组件的login方法
methods:{
login(){
axios.post('api/v1/accesstoken',{
accesstoken:this.info
})
.then(
res=>{
const info=this.info;
setCookie('accesstoken',this.info)
setCookie('username',res.data.loginname)
setCookie('userid',res.data.id)
this.$router.push( {name:'myinfo',params:{user:res.data.loginname} } )
}
)
.catch(
err=>{
alert(err)
}
)
}
}
个人信息组件显示与否的判断
beforeRouteEnter(to,from,next){
if(to.meta.requireAuth){ //此组件需要登录
if(getCookie('accesstoken')==null){
next({
path:'/login'
})
}else{
next()
}
}else {
next(); //否则不需要登录,直接进入路由
}
},
退出操作
//退出登录
logout(){
delCookie('userid') //名字要对应getCookie的值
delCookie('accesstoken')
delCookie('username')
this.$router.push({
path: "/login"
})
}
其他操作
例如点赞和评论等功能,也要判断用户是否登录
vue展示信息卡片_vue实现登录和个人信息组件展示相关推荐
- vue展示信息卡片_vue 个人中心会员卡片组件
项目需求: 项目个人中心页会员卡片组件 slot插槽规则: 父级模板里的所有内容都是在父级作用域中编译的:子模板里的所有内容都是在子作用域中编译的. 组件: export default { name ...
- vue展示信息卡片_vue组件系列-气泡卡片
从模态弹框讲起 前端攻城
- antd vue关闭模态对话框_Vue.extend 登录注册模态框
模态框是我们 UI 控件中一个很重要的组件,使用场景有很多种,我们在 Vue 组件中创建模态框组件而用到的一个知识点是利用 Vue.extend 来创建.文档中的解释是 在最近在做一个常用的类似下面 ...
- 前端学习(2682):重读vue电商网站3之登录页面总结el-form 组件问题
el-form 组件默认是 content-box,我们设置其如下属性时,就会出现长度比我们想象中长一点的情况. .login_form {position: absolute;bottom: 60p ...
- 【vue】 vue项目开发卡片展示页面----菜品管理
vue项目开发卡片展示页面----菜品管理 对话框表单获取父组件数据 子组件dishform 对话框表单样式 methods 中的dataInit方法 获取父组件传来的数据 <script> ...
- vue 用户名重复验证_Vue中的验证登录状态
Vue项目中实现用户登录及token验证 先说一下我的实现步骤: 使用easy-mock新建登录接口,模拟用户数据 使用axios请求登录接口,匹配账号和密码 账号密码验证后, 拿到token,将to ...
- reload vue 重新加载_vue面试,谈下router拦截
最近开始准备面试,尽管是电话面试全身还是充斥着紧张感,一面感觉还不错,主要是问react和vue的一些生命周期,介绍下redux...,二面印象深刻的是问到了介绍下router拦截,我觉得还是个人对r ...
- vue 专题 vue2.0各大前端移动端ui框架组件展示
Vue 专题 一个数据驱动的组件,为现代化的 Web 界面而生.具有可扩展的数据绑定机制,原生对象即模型,简洁明了的 API 组件化 UI 构建 多个轻量库搭配使用 请访问链接: https://ww ...
- vue 循环 递归组件_Vue一个案例引发的递归组件的使用
今天我们继续使用 Vue 的撸我们的实战项目,只有在实战中我们才会领悟更多,光纸上谈兵然并卵,继上篇我们的<Vue一个案例引发的动态组件与全局事件绑定总结> 之后,今天来聊一聊我们如何在项 ...
最新文章
- Firefox 突然拉黑中国用户
- python列表--查找集合中重复元素的个数
- 聚美app之 _sign参数分析
- mysql增量备份保留策略_Mysql备份策略-完成备份+增量备份shell
- perl6正则 4: before / after 代码断言: ?{} / !{}
- 引用类型赋值“.NET技术”为null与加速垃圾回收
- 网络安全人才平均年薪 24.09 万,跳槽周期 31 个月,安全工程师现状大曝光!
- android8卡顿,Android 8.0系统曝光,解决了安卓系统卡顿的问题
- 【SpringBoot_ANNOTATIONS】自动装配 02 @Resource @Inject
- cad学生版和教育版_针对学生和教育者的3个版权提示
- 【英语学习工具】学习英语硬背硬记太难了, 在这里解说 LeHoCat 提供免费的 视频集 工具的使用方法, 看视频学英语的工具, 制作英语教学课件的工具, 帮助自学英语(详细图文)第2版
- 爬虫免费Charles使用教程
- 180729 5行命令win10企业版永久激活方法
- jav学习笔记-String源码分析
- 基于python的百度离线地图下载器
- 塞班3的java键盘_【图片】Symbian3系统简介【塞班3吧】_百度贴吧
- 无法同步因计算机未授权,iTunes无法授权和同步解决办法教程
- 初步了解区块链技术落地——FISCO BCOS 快速搭建区块链
- mysql出现2058,连接MySQL报“Error No.2058 Plugin caching_sha2_password could not be loaded”
- 同义词,反义词(antonym,synonym)的英文表达理解