日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue展示信息卡片_vue实现登录和个人信息组件展示

發(fā)布時(shí)間:2025/4/17 vue 142 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue展示信息卡片_vue实现登录和个人信息组件展示 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在寫一個(gè)重構(gòu)node社區(qū)的小項(xiàng)目,碰到了登錄的問題,實(shí)現(xiàn)思路如下:

1.獲取用戶表單信息,使用axios提交,提交成功后,把數(shù)據(jù)存在cookie,以便后續(xù)操作。

2.其中有個(gè)人信息的頁面展示,獲取cookie信息,判斷用戶是否登錄,如果登錄則顯示內(nèi)容,未登錄則跳轉(zhuǎn)到登錄頁面,所以個(gè)人信息的頁面可以使用路由守衛(wèi)

搜索資料時(shí)有看到這種寫法,就是經(jīng)過判斷后去改變的動(dòng)態(tài)路由來決定跳轉(zhuǎn)到哪個(gè)組件,感覺稍顯麻煩。

3.退出操作,清除cookie

可以把操作cookie的代碼放到一個(gè)單獨(dú)的src/utils/cookie.js文件,utils這個(gè)文件夾可以放一些工具類的文件

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;

}

//設(shè)置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);

}

后面發(fā)現(xiàn)vue有一個(gè)關(guān)于操作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)

}

)

}

}

個(gè)人信息組件顯示與否的判斷

beforeRouteEnter(to,from,next){

if(to.meta.requireAuth){ //此組件需要登錄

if(getCookie('accesstoken')==null){

next({

path:'/login'

})

}else{

next()

}

}else {

next(); //否則不需要登錄,直接進(jìn)入路由

}

},

退出操作

//退出登錄

logout(){

delCookie('userid') //名字要對應(yīng)getCookie的值

delCookie('accesstoken')

delCookie('username')

this.$router.push({

path: "/login"

})

}

其他操作

例如點(diǎn)贊和評論等功能,也要判斷用戶是否登錄

總結(jié)

以上是生活随笔為你收集整理的vue展示信息卡片_vue实现登录和个人信息组件展示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。