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

那个网站做创意图比较好企业推广平台

那个网站做创意图比较好,企业推广平台,做网站语言排名2018,做网站兼容性怎么设置在现代前端开发中,使用 Vue 3 和 TypeScript 的组合是一种流行且高效的开发方式。Vite 是一个极速的构建工具,可以显著提升开发体验。本文博主将指导你如何在 Vite Vue 3 TypeScript 项目中配置前置路由守卫(Navigation Guards)…

        在现代前端开发中,使用 Vue 3 TypeScript 的组合是一种流行且高效的开发方式。Vite 是一个极速的构建工具,可以显著提升开发体验。本文博主将指导你如何在 Vite + Vue 3 + TypeScript 项目中配置前置路由守卫(Navigation Guards)。

前置条件

在开始配置项目前置路由守卫前,博主希望你能够先达成以下前置条件:

1.完成Vue3前端项目搭建: Vite 创建 Vue3 + TS 项目

2.引入Vue-Router模块:Vue3项目配置Vue-Router

3.完成Pinia配置:Vue项目安装Pinia

1.创建前置守卫

        在之前的章节中,我们已经完成了路由视图和路由重定向的配置,现在我们只需要为我们的路由器实例对象添加一个导航守卫就可以控制是否放行路由跳转啦。

        我们可以通过 router.beforeEach 注册一个全局前置守卫,当一个导航触发时,全局前置守卫按照创建顺序调用。

        守卫是异步解析执行的,导航在所有守卫 resolve 完之前一直处于等待中

// 路由配置文件 index.tsimport { createWebHistory, createRouter } from 'vue-router'// 定义路由配置
const routes: Array<any> = [{path: '/',redirect: '/home'},{path: '/login',name: 'Login',component: () => import('/@/views/login/index.vue')},{path: '/home',name: 'Home',component: () => import('/@/views/home/index.vue'),}
]// 创建路由实例
const router = createRouter({history: createWebHistory(),    // 导航历史记录模式routes
})// 导航守卫
router.beforeEach((to, from) => {// 返回 false 以取消导航return false
})// 导出实例
export default router

每个路由守卫都可以有以下三个参数:

  • to:即将要进入的目标;
  • from:当前导航正要离开的路由;
  • next:当你在使用next时,确保 next 在任何给定的导航守卫中都被严格调用一次。它可以出现多于一次,但是只能在所有的逻辑路径都不重叠的情况下,否则钩子永远都不会被解析或报错。

 2.配置无token跳转登录页

        既然知道了 Vue-Router 导航守卫的工作机制,那么我们现在可以尝试一下结合 Pinia 进行路由控制了:

        2.1.配置User状态

        在 src/store/ 目录下,新建 userInfo.ts 文件,用于存储 User/token 等状态:

// userInfo.tsimport { defineStore } from 'pinia'
import { reactive } from 'vue'interface UserInfo {token: string,userId: string,userName: string,roles: Array<string>
}export const useUserInfoStore = defineStore('userInfo', () => {const state = reactive({userInfo: {} as UserInfo})const setUserInfo = (userInfo: UserInfo) => {state.userInfo = userInfo}const getUserInfo = () => {return state.userInfo}return { state, setUserInfo, getUserInfo }
})

        2.2.配置前置路由守卫

        在 router.beforeEach 中根据token配置路由跳转:

// index.ts 路由配置文件import { createWebHistory, createRouter } from 'vue-router'
// 引入我们刚才写好的 Pinia 状态
import { useUserInfoStore } from '/@/store/userInfo'// 定义路由配置
const routes: Array<any> = [{path: '/',redirect: '/home'},{path: '/login',name: 'Login',component: () => import('/@/views/login/index.vue')},{path: '/home',name: 'Home',component: () => import('/@/views/home/index.vue'),}
]// 创建路由实例
const router = createRouter({history: createWebHistory(),    // 导航历史记录模式routes
})// 导航守卫
router.beforeEach((to, from, next) => { const userInfoStore = useUserInfoStore()if ((to.path === '/login') && (!userInfoStore.state.userInfo.token)) {next()} else {if (userInfoStore.state.userInfo.token) {next()} else {next('/login')}}})// 导出实例
export default router

3.效果测试

        项目根路径下(与src目录同级),运行命令行:

# 启动项目
$ npm run dev

        可见,现在我们的pinia中没有存储的有token,所以在项目启动时,被全局前置守卫拦截下来,跳转到登录路由。

http://www.shuangfujiaoyu.com/news/1559.html

相关文章:

  • 微商软件商城24小时汕头网站快速优化排名
  • 手机网站生成app关键词生成器
  • 怎么让网站绑定域名哪个网站做推广效果好
  • wordpress固定连接设置去掉前缀武汉seo排名优化
  • wordpress博客二次元win7系统优化软件
  • 深圳网站营销公司简介上海关键词推广
  • wordpress标题超链接重庆网站优化
  • 网站策划方案淘宝怎样优化关键词
  • 杭州企业如何建网站经典软文广告
  • 专门做家具网站目前最好的营销模式
  • 北京高端网站制作最新新闻摘抄
  • 网站开发 流程图免费发布推广的平台有哪些
  • 做海报设计的图片网站有哪些网络广告营销案例分析
  • wordpress企业站主题免费网站友情链接美化代码
  • 富顺做网站免费seo营销优化软件下载
  • 旅游网站模板大全建网站设计
  • 笔记本电脑做网站比较畅快外贸推广是做什么的
  • index.html网站怎么做关键词搜索推广
  • html做网站需要服务器吗百度实时热点排行榜
  • 论坛网站怎么做网站查询系统
  • 红色的网站在百度上做广告推广要多少钱
  • a做片手机免费网站windows优化大师免费版
  • html网页设计用什么软件搜索引擎优化举例说明
  • mac系统写wordpresswindows优化大师要钱
  • 广东如何做网站设计sem是什么职位
  • 南京网站建设 w搜索引擎优化自然排名
  • 推广运营是什么工作站长之家seo概况查询
  • 微信二维码网站建设网站如何才能被百度收录
  • id注册网站网络上哪里可以做推广
  • 中国即将全面疫情解封成都seo整站