最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3配置permission.js和router、pinia實現路由攔截的簡單步驟

 更新時間:2024年11月19日 11:09:36   作者:劍亦未配妥  
這篇文章主要介紹了如何在場景網站中實現對未登錄用戶訪問的攔截,通過配置Pinia,創(chuàng)建一個user.js文件來存儲用戶數據,并在main.js中進行配置,同時通過在router目錄下創(chuàng)建permission.js文件,可以實現對未登錄用戶的攔截,需要的朋友可以參考下

場景

網站中,通常用戶登錄后后端返回token給前端,前端存儲在本地并且在每次發(fā)送請求時攜帶,如果用戶未登錄(沒有token)就想訪問網站內部的網頁,我們就需要做對應攔截。

配置Pinia

首先命令行下載pinia

pnpm install pinia

src中新建一個stores目錄,其中根據自己的需要進行編寫,推薦如下的目錄結構

在這里插入圖片描述

其中user.js就是存放自己需要存儲化的數據(名字可以自定義),而index.js是為了統(tǒng)一導出pinia

//index.js
import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'

// 創(chuàng)建 pinia 實例
const pinia = createPinia()
// 使用持久化存儲插件
pinia.use(persist)

// 默認導出,給 main.js 使用
export default pinia

// 模塊統(tǒng)一導出
export * from './modules/member'

user.js中(示例)

import { defineStore } from 'pinia'
import { ref } from 'vue'

//用戶模塊 token setToken removeToken
export const useUserStore = defineStore(
  'useMemberStore',
  () => {
    //用戶信息
    const userInfo = ref({})

    const setUserInfo = (data) => {
      userInfo.value = data
    }
    //退出登錄時
    const removeUserInfo = () => {
      userInfo.value = {}
    }

    return {
      userInfo,
      setUserInfo,
      removeUserInfo
    }
  },
  {
    persist: true
  }
)

main.js文件中同樣需要進行配置

// 注冊持久化插件
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

const app = createApp(App)
const pinia = createPinia()
// 注冊持久化插件
pinia.use(piniaPluginPersistedstate)
app.use(pinia)

配置permission.js

router的配置就不再過多介紹了,很簡單,在router文件夾中新建一個permission.js文件,其中如下內容

import router from './index' // 引入主路由模塊
import { useUserStore } from '@/stores/modules/user'//pinia持久化的信息

const whiteList = ['/login'] // 不需要鑒權的路由白名單

router.beforeEach(async (to, from, next) => { 
  //useUserStore需要根據你實際定義的Pinia來
  const userStore = useUserStore()
  // 如果用戶已經登錄,則直接放行
  if (userStore.userInfo.token) {
    next()
    return
  }

  // 如果用戶未登錄并且目標路由不在白名單中
  if (!userStore.userInfo.toke && !whiteList.includes(to.path)) {
    // 重定向到登錄頁
    next(`/login?redirect=${to.path}`)
  } else {
    // 目標路由在白名單中,直接放行
    next()
  }
})

export default router

main.js中記得引入

import '@/router/permission.js'

現在就可以實現對未登錄(沒有token)的用戶訪問進行攔截了

總結

到此這篇關于vue3配置permission.js和router、pinia實現路由攔截的文章就介紹到這了,更多相關vue3實現路由攔截內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 用vue的雙向綁定簡單實現一個todo-list的示例代碼

    用vue的雙向綁定簡單實現一個todo-list的示例代碼

    本篇文章主要介紹了用vue的雙向綁定簡單實現一個todo的示例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • vue循環(huán)數據v-for / v-if最后一條問題

    vue循環(huán)數據v-for / v-if最后一條問題

    這篇文章主要介紹了vue循環(huán)數據v-for / v-if最后一條問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue3?vscode插件volar配置教程

    vue3?vscode插件volar配置教程

    這篇文章主要介紹了vue3?vscode插件volar配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • vue3中update:modelValue的使用與不生效問題解決

    vue3中update:modelValue的使用與不生效問題解決

    現在vue3的使用越來越普遍了,vue3這方面的學習我們要趕上,下面這篇文章主要給大家介紹了關于vue3中update:modelValue的使用與不生效問題的解決方法,需要的朋友可以參考下
    2022-03-03
  • vue滾動固定頂部及修改樣式的實例代碼

    vue滾動固定頂部及修改樣式的實例代碼

    這篇文章主要介紹了vue滾動固定頂部及修改樣式,本文給大家提到了滾動固定位置有多種方法,感興趣的朋友跟隨小編一起看看吧
    2019-05-05
  • require.js 加載 vue組件 r.js 合并壓縮的實例

    require.js 加載 vue組件 r.js 合并壓縮的實例

    這篇文章主要介紹了require.js 加載 vue組件 r.js 合并壓縮的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • Vue3中#default=“scope”的使用

    Vue3中#default=“scope”的使用

    在Vue3中,我們經常會遇到需要處理列表渲染的情況,Vue3引入了一種新的語法,即#default=“scope”,本文就來介紹一下Vue3中#default=“scope”的使用,感興趣的可以了解一下
    2023-10-10
  • Vue實現選中文本彈出彈窗功能的完多種方法

    Vue實現選中文本彈出彈窗功能的完多種方法

    在現代 Web 應用中,選中文本后顯示相關操作或信息是一種常見的交互模式,本文將詳細介紹如何在 Vue 中實現選中文本后彈出彈窗的功能,包括其工作原理、多種實現方式以及實際項目中的應用示例,需要的朋友可以參考下
    2025-09-09
  • Vue前端路由hash與history差異深入了解

    Vue前端路由hash與history差異深入了解

    這篇文章主要為大家介紹了Vue前端路由hash與history差異的深入了解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • vue項目里面引用svg文件并給svg里面的元素賦值

    vue項目里面引用svg文件并給svg里面的元素賦值

    這篇文章主要介紹了vue項目里面引用svg文件并給svg里面的元素賦值,本文分步驟通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08

最新評論

余庆县| 大连市| 新疆| 吉林市| 贵阳市| 江达县| 张掖市| 自治县| 汝城县| 新乡县| 北票市| 郧西县| 博湖县| 庆安县| 黄浦区| 罗山县| 兴业县| 凤山市| 广西| 德清县| 枝江市| 盐亭县| 沂南县| 台中市| 阿克苏市| 富锦市| 泰宁县| 固镇县| 邹城市| 韶山市| 涟水县| 房山区| 永平县| 神农架林区| 合阳县| 尼木县| 夏邑县| 岳普湖县| 定结县| 昌平区| 霍邱县|