当前位置: 首页 > article >正文

大事件管理系统项目总结(上)

文章目录

  • 大事件管理系统项目总结(上)
    • Pinia - 配置仓库统一管理
    • Vue3路由配置
    • Vue3导航拦截


大事件管理系统项目总结(上)

Pinia - 配置仓库统一管理

使用pinia多层文件夹嵌套时,导入某个文件的路径会很长,容易写错,此时可以创建一个index.js出口文件来集合所有要导出的仓库,当要用某些仓库时,可以直接从index.js中导入仓库即可。

在这里插入图片描述
统一在index.js中导出:

import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

const pinia = createPinia()
pinia.use(piniaPluginPersistedstate)

export default pinia

export * from './modules/counter'
export * from './modules/user.js'

// 或者:
// export { useCounterStore } from './modules/counter'
// export { useUserStore } from './modules/user.js'

导入使用:

<script setup>
import { useUserStore } from '@/stores' // 导入useUserStore模块

const userStore = useUserStore()

console.log(userStore.token.value)
</script>

<template>
 <div>{{ userStore.token }}</div>
</template>

<style lang="scss" scoped>
// ...
</style>

Vue3路由配置

import { createRouter, createWebHistory } from 'vue-router'

// createRouter 创建路由实例 ===> new VueRouter()
// 1. 设置history模式: createWebHistory()   http://xxx/user
// 2. 设置hash模式: createWebHashHistory()  http://xxx/#/user

// vite 的配置 import.meta.env.BASE_URL 是路由的基准地址,默认是 ’/‘
// https://vitejs.dev/guide/build.html#public-base-path

// 如果将来你部署的域名路径是:http://xxx/my-path/user
// vite.config.ts  添加配置  base: my-path,这时路由就会加上 my-path 前缀了

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: []
})

export default router
  • import.meta.env.MODE: {string} 应用运行的模式。
  • import.meta.env.BASE_URL: {string} 部署应用时的基本 URL。他由base 配置项决定。
  • import.meta.env.PROD: {boolean} 应用是否运行在生产环境(使用 NODE_ENV=‘production’ 运行开发服务器或构建应用时使用 NODE_ENV=‘production’ )。
  • import.meta.env.DEV: {boolean} 应用是否运行在开发环境 (永远与 import.meta.env.PROD相反)。
  • import.meta.env.SSR: {boolean} 应用是否运行在 server 上。

Vue3导航拦截

// return false 表示取消该路由跳转
// return true 或没有return表示允许该路由的跳转
// return 路径 表示跳转到该路径
// to 表示当前进入的目标
router.beforeEach((to) => {
  const userStore = useUserStore()
  if ( to.path !== '/login' && !userStore.token ) {
    return '/login'
  }
})

http://www.kler.cn/a/409388.html

相关文章:

  • Makefile 之 wordlist
  • Linux进程管理查找相关命令
  • HTML 元素类型介绍
  • docker搭建私有的仓库
  • C语言——break、continue、goto
  • 可视化建模与UML《协作图实验报告》
  • 【Vscode】不同系统快捷键
  • 论防火墙对网络安全的重要性
  • 【大数据学习 | Spark-Core】Spark提交及运行流程
  • Oracle 执行计划查看方法汇总及优劣对比
  • 信息收集ip测活-Python脚本编写
  • Java零拷贝一步曲——Linux 中的零拷贝技术
  • C++ Qt 识别U盘/串口
  • 传输控制协议(TCP)和用户数据报协议(UDP)
  • ODBC连接PostgreSQL数据库后,网卡DOWN后,客户端进程阻塞问题解决方法
  • 无法加载文件 C:\dev\nodejs\cnpm.ps1,因为在此系统上禁止运行脚本。问题解决
  • 用java和redis实现考试成绩排行榜
  • RabbitMQ 之 死信队列
  • 基于Python Web的社区爱心养老管理系统设计与实现
  • Mysql的加锁情况详解
  • [ubuntu]编译共享内存读取出现read.c:(.text+0x1a): undefined reference to `shm_open‘问题解决方案
  • VUE3 默认下载某个文件
  • 蓝桥杯嵌入式再学习理解
  • MySQL中索引全详解
  • windows C#-异步文件访问
  • python 什么是数据类dataclass,以及它的应用场景