Web前端最全Vue实现免密登录跳转的方式_vue怎么样不登录返回首页,最强技术实现

react和vue的比较

相同
1)vitual dom
2)组件化
3)props,单一数据流

不同点
1)react是jsx和模板;(jsx可以进行更多的js逻辑和操作)
2)状态管理(react)
3)对象属性(vue)
4)vue:view——medol之间双向绑定
5)vue:组件之间的通信(props,callback,emit)

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

if (password && passwordPattern.test(password)) {
const newUrl = url.replace(/(password=)[^&]*/, $1${tranAscii(password)}) //密码中的特殊字符用一个别的特定字符替代
window.location.href = newUrl
} else {
if (Number(isFreeLogin) === 1 && to.path === ‘/login’ && from.path == ‘/’) {
loadingInstance = Loading.service({
background: ‘rgba(255,255,255,0.1)’,
text: ‘页面跳转中…’,
customClass: ‘login-loading’,
spinner: ‘el-icon-loading’
})
setFormData(() => {
next()
})
} else {
if (to.path === ‘/’) return next(‘/login’)
const token = localStorage.getItem(‘Admin-Token’)
if (!token && to.path !== ‘/login’) return next(‘/login’)
next()
}
}
})

router.afterEach((to, from) => {
NProgress.done()
loadingInstance.close()
})
export default router

function setFormData(cb) {
// 判断url后是否携带?isFreeLogin=1参数,如果存在,则免登录
const { username, password, isFreeLogin } = getQueryVariable()
if (isFreeLogin && Number(isFreeLogin) === 1) {
if (username !== undefined && password !== undefined) {
Vue.prototype.loginForm = {
username: username.trim(),
password: password.trim() //此处密码要做同步处理
}
} else {
Message.error({
showClose: true,
message: ‘用户名或密码为空!’
})
cb && cb()
}
}
if (JSON.stringify(Vue.prototype.loginForm) !== ‘{}’) {
handleLogin(Vue.prototype.loginForm, cb)
Vue.prototype.loginForm = {}
}
}

//登录逻辑
async handleLogin(form,cb){
try{
await login(form)
cb&&cb()
}catch{
cb&&cb()
}
}


 要注意一下两个问题:


(1)url中因为携带了账号、密码,密码可能会存在特殊字符,如果后端接口做了特殊字符的过滤,可能会报400的错误


### 最后

我可以将最近整理的前端面试题分享出来,其中包含**HTML、CSS、JavaScript、服务端与网络、Vue、浏览器、数据结构与算法**等等,还在持续整理更新中,希望大家都能找到心仪的工作。

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**

**篇幅有限,仅展示部分截图:**

![](https://img-blog.csdnimg.cn/img_convert/ff6b8e636a356a01389cd2de0211d347.png)

![](https://img-blog.csdnimg.cn/img_convert/b24f32dd81ead796fa80c27c763d262c.png)

![](https://img-blog.csdnimg.cn/img_convert/c6265dc2681708533916a8d7910506b3.png)

c27c763d262c.png)

![](https://img-blog.csdnimg.cn/img_convert/c6265dc2681708533916a8d7910506b3.png)

  • 24
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值