vuex实现登陆与未登录不同权限
这次给大家带来vuex实现登陆与未登录不同权限,vuex实现登陆与未登录不同权限的注意事项有哪些,下面就是实战案例,一起来看一下。
基础思路就是使用vuex状态管理来存储登录状态(其实就是存一个值,例如token),然后在路由跳转前进行登录状态的判断,可以使用vue-router的全局前置守卫beforeEach,也可以使用路由独享的守卫beforeEnter。
导航守卫
正如其名,vue-router" 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。 记住参数或查询的改变并不会触发进入/离开的导航守卫。你可以通过观察 $route 对象来应对这些变化,或使用beforeRouteUpdate的组件内守卫。
完整的导航解析流程
1、导航被触发。
2、在失活的组件里调用离开守卫。
3、调用全局的 beforeEach 守卫。
4、在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。
5、在路由配置里调用 beforeEnter。
6、解析异步路由组件。
7、在被激活的组件里调用 beforeRouteEnter。
8、调用全局的 beforeResolve 守卫 (2.5+)。
9、导航被确认。
10、调用全局的 afterEach 钩子。
11、触发 DOM 更新。
12、用创建好的实例调用 beforeRouteEnter 守卫中传给 next 的回调函数。
全局守卫
你可以使用 router.beforeEach注册一个全局前置守卫
const router = new VueRouter({ ... }) router.beforeEach((to, from, next) => { // ... })
当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫 resolve 完之前一直处于 等待中。
每个守卫方法接收三个参数:
to: Route:即将要进入的目标 路由对象
from: Route:当前导航正要离开的路由
next: Function:一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。
next():进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是 confirmed (确认的)。
next(false):中断当前的导航。如果浏览器的 URL 改变了(可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from 路由对应的地址。
next('/')或者next({ path: '/' }): 跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。
next(error):(2.4.0+) 如果传入 next 的参数是一个 Error 实例,则导航会被终止且该错误会被传递给 router.onError()注册过的回调。
确保要调用 next 方法,否则钩子就不会被 resolved。
路由独享的守卫
你可以在路由配置上直接定义beforeEnter守卫:
const router = new VueRouter({ routes: [ { path: '/foo', component: Foo, beforeEnter: (to, from, next) => { // ... } } ] })
还有其他部分守卫,详情可以看官方文档https://router.vuejs.org/zh-cn/advanced/navigation-guards.html
安装vuex后
创建store.js
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); const state = { isLogin: 0 } const mutations = { changeLogin(state,status){ state.isLogin = status; } } const actions = { loginAction({commit}){ commit('changeLogin',1); } } export default new Vuex.Store({ state, actions, mutations })
login.vue中
引入import { mapActions,mapState } from 'vuex'
接着进行登录状态的改变,base_url就是路径
export default { name: 'Login', data(){ return{ loginForm: { username: '', password: '', }, rules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, ], password: [ { required: true, message: '请输入密码', trigger: 'blur' } ], }, showLogin: false } }, mounted(){ this.showLogin = true; }, computed: { ...mapState(['isLogin']) }, methods: { ...mapActions(['loginAction']), submitForm(formName){ this.$refs[formName].validate((valid) => { if(valid){ if(this.loginForm.username == 'aaa' && this.loginForm.password == '111'){ console.log('验证通过'); this.loginAction(); this.$router.push('manage'); }else{ console.log('账号密码出错'); // this.$message.error('账号密码出错'); this.$message({ type: 'error', message: '账号密码出错' }); } console.log('请求地址: ' + base_url); }else{ console.log('验证失败'); return false; } }) } } }
接下去只要使用路由守卫即可
beforeEach使用实例
router.beforeEach((to,from,next)=>{ if(to.meta.check){ var check = async function(){ const result = await checkUser(); if(result.status == 0){ next(); }else{ alert('用户未登录'); next({path: '/login'}); } } check(); //后台验证session }else{ next(); } })
beforeEnter使用实例
export default new Router({ routes: [ { path: '/login', component: Login }, { path: '/manage', name: '', component: Manage, beforeEnter: (to,from,next)=> { //导航守卫 console.log(to) console.log(from) if(store.state.isLogin == 1){ console.log('用户已经登录'); next(); }else{ console.log('用户未登录'); next({path: '/login',query:{ Rurl: to.fullPath}}); //未登录则跳转到登陆界面,query:{ Rurl: to.fullPath}表示把当前路由信息传递过去方便登录后跳转回来 } } } ] })
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Atas ialah kandungan terperinci vuex实现登陆与未登录不同权限. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apabila anda log masuk ke akaun stim orang lain pada komputer anda, dan akaun orang lain itu kebetulan mempunyai perisian kertas dinding, stim akan memuat turun kertas dinding yang dilanggan ke akaun orang lain secara automatik selepas bertukar kembali ke akaun anda sendiri Pengguna boleh menyelesaikan masalah ini dengan mematikan penyegerakan awan wap. Apa yang perlu dilakukan jika enjin kertas dinding memuat turun kertas dinding orang lain selepas log masuk ke akaun lain 1. Log masuk ke akaun stim anda sendiri, cari penyegerakan awan dalam tetapan, dan matikan penyegerakan awan stim. 2. Log masuk ke akaun Steam orang lain yang anda log masuk sebelum ini, buka Bengkel Kreatif Kertas Dinding, cari kandungan langganan, dan kemudian batalkan semua langganan. (Sekiranya anda tidak dapat mencari kertas dinding pada masa hadapan, anda boleh mengumpulnya dahulu dan kemudian membatalkan langganan) 3. Tukar semula ke wap anda sendiri

Dengan perkembangan pesat media sosial, Xiaohongshu telah menjadi platform popular untuk ramai anak muda untuk berkongsi kehidupan mereka dan meneroka produk baharu. Semasa penggunaan, kadangkala pengguna mungkin menghadapi kesukaran untuk log masuk ke akaun sebelumnya. Artikel ini akan membincangkan secara terperinci cara menyelesaikan masalah log masuk ke akaun lama di Xiaohongshu, dan cara menangani kemungkinan kehilangan akaun asal selepas menukar pengikatan. 1. Bagaimana untuk log masuk ke akaun sebelumnya Xiaohongshu? 1. Dapatkan kata laluan dan log masuk. Jika anda tidak log masuk ke Xiaohongshu untuk masa yang lama, akaun anda mungkin dikitar semula oleh sistem. Untuk memulihkan hak akses, anda boleh cuba log masuk ke akaun anda sekali lagi dengan mendapatkan semula kata laluan anda. Langkah-langkah operasi adalah seperti berikut: (1) Buka Aplikasi Xiaohongshu atau laman web rasmi dan klik butang "Log Masuk". (2) Pilih "Retrieve Password". (3) Masukkan nombor telefon bimbit yang anda gunakan semasa mendaftar akaun anda

Penyelesaian masalah log masuk latar belakang Discuz didedahkan. ramai webmaster. Walau bagaimanapun, dengan tepat kerana fungsinya yang berkuasa, kadangkala kami menghadapi beberapa masalah semasa menggunakan Discuz, seperti masalah log masuk latar belakang. Hari ini, kami akan mendedahkan penyelesaian kepada masalah log masuk latar belakang Discuz dan memberikan contoh kod khusus, dengan harapan dapat membantu mereka yang memerlukan

Beribu-ribu hantu menjerit di pergunungan dan padang, dan bunyi penyerahan senjata hilang. Jeneral hantu yang bergegas ke atas pergunungan, dengan semangat juang yang berkobar-kobar di dalam hati mereka, menggunakan api sebagai sangkakala mereka untuk memimpin ratusan hantu untuk menyerang. ke dalam pertempuran. [Blazing Flame Bairen·Kulit Koleksi Doji Ibaraki kini dalam talian] Tanduk hantu berkobar-kobar dengan nyala api, mata yang disepuh dipenuhi dengan semangat juang yang sukar dikawal, dan kepingan perisai jed putih menghiasi baju, menunjukkan momentum yang tidak terkawal dan liar yang hebat. syaitan. Pada lengan baju yang berkibar-kibar seputih salji, nyala api merah melekat dan berjalin, dan corak emas dicetak pada mereka, menyalakan warna merah lembayung dan ajaib. Wasiat-o'-the-wips yang dibentuk oleh kuasa syaitan pekat meraung, dan api yang ganas menggoncang gunung Iblis dan hantu yang telah kembali dari api penyucian, mari kita menghukum penceroboh itu bersama-sama. [Bingkai avatar dinamik eksklusif·Blazing Flame Bailian] [Ilustrasi eksklusif·Firework General Soul] [Penghargaan Biografi] [Cara mendapatkan] Kulit koleksi Ibaraki Doji·Blazing Flame Bailian akan tersedia di kedai kulit selepas penyelenggaraan pada 28 Disember.

Baru-baru ini, beberapa rakan telah bertanya kepada saya bagaimana untuk log masuk ke versi komputer Kuaishou Berikut adalah kaedah log masuk untuk versi komputer Kuaishou Rakan yang memerlukannya boleh datang dan mengetahui lebih lanjut. Langkah 1: Mula-mula, cari tapak web rasmi Kuaishou di Baidu dalam penyemak imbas komputer anda. Langkah 2: Pilih item pertama dalam senarai hasil carian. Langkah 3: Selepas memasuki halaman utama laman web rasmi Kuaishou, klik pada pilihan video. Langkah 4: Klik pada avatar pengguna di sudut kanan atas. Langkah 5: Klik kod QR untuk log masuk dalam menu log masuk pop timbul. Langkah 6: Kemudian buka Kuaishou pada telefon anda dan klik pada ikon di sudut kiri atas. Langkah 7: Klik pada logo kod QR. Langkah 8: Selepas mengklik ikon imbasan di penjuru kanan sebelah atas antara muka kod QR Saya, imbas kod QR pada komputer anda. Langkah 9: Akhirnya log masuk ke versi komputer Kuaishou

Bagaimana untuk log masuk ke dua peranti dengan Quark Browser menyokong log masuk ke dua peranti pada masa yang sama, tetapi kebanyakan rakan tidak tahu cara untuk log masuk ke dua peranti dengan Quark Browser Seterusnya, editor membawa pengguna Quark untuk log masuk kepada dua peranti tutorial grafik kaedah, pengguna yang berminat datang dan lihat! Tutorial penggunaan Pelayar Quark Cara log masuk ke dua peranti 1. Mula-mula buka APP Pelayar Quark dan klik [Cakera Rangkaian Quark] pada halaman utama 2. Kemudian masukkan antara muka Cakera Rangkaian Quark dan pilih fungsi perkhidmatan [My Backup]. ; 3. Akhir sekali, pilih [Tukar Peranti] untuk log masuk ke dua peranti baharu.

Xiaohongshu kini telah disepadukan ke dalam kehidupan seharian ramai orang, dan kandungannya yang kaya serta kaedah operasi yang mudah membuatkan pengguna menikmatinya. Kadang-kadang, kita mungkin terlupa kata laluan akaun Memang menjengkelkan untuk hanya mengingati akaun tetapi tidak boleh log masuk. 1. Bagaimana untuk log masuk jika Xiaohongshu hanya mengingati akaun tersebut? Apabila kami terlupa kata laluan kami, kami boleh log masuk ke Xiaohongshu melalui kod pengesahan pada telefon bimbit kami. Operasi khusus adalah seperti berikut: 1. Buka Aplikasi Xiaohongshu atau versi web Xiaohongshu 2. Klik butang "Log Masuk" dan pilih "Log Masuk Akaun dan Kata Laluan" 3. Klik butang "Lupa kata laluan anda?" . Masukkan nombor akaun anda Klik "Seterusnya"; 5. Sistem akan menghantar kod pengesahan ke telefon bimbit anda, masukkan kod pengesahan dan klik "OK"; Anda juga boleh menggunakan akaun pihak ketiga (seperti

Terdapat pelbagai sebab mengapa anda tidak boleh log masuk ke akaun Microsoft anda. Walaupun ia jarang berlaku, apabila ia berlaku, ia boleh mengecewakan. Sebagai contoh, dalam Windows 11, salah satu sebab mengapa ini berlaku adalah kerana aplikasi terbina dalam Microsoft Store kadangkala rosak dan berhenti berfungsi dengan betul. Sebagai contoh, pengguna Reddit ini menghadapi masalah ini, dan pengguna lain datang untuk menyelamatkan dengan penyelesaian mudah yang nampaknya berjaya akhirnya. Untuk dapat log masuk semula ke akaun Microsoft anda, semua apl Microsoft Store terbina dalam perlu dipasang semula. Inilah perkaranya. Buka aplikasi Powershell sebagai pentadbir. Masukkan arahan berikut: Get-Ap
