vue

您所在的位置:网站首页 美团笔试问答题怎么做 vue

vue

2024-07-15 14:47:24| 来源: 网络整理| 查看: 265

前言: 使用vue的时候总会使用到前端vue-router路由,检验登陆状态,检验是否路由跳转,就需要路由守卫来解决, 这一篇将会多多少少能够让你运用路由守卫。

一、全局路由守卫

首先, 在vue文件目录里找到 main.js 文件

import Vue from 'vue' import App from './App' import router from './router' import store from './store' router.beforeEach((to, from, next) => { // ... }); new Vue({ el: "#app", store, router, components: { App }, template: "" });

这是全局的路由守卫,每次在路由跳转的时候,都会触发这个函数。

其中,

to 就是去的路由 去往哪儿 from 是跳转前的路由 从哪儿跳过来的 next 就是确认跳转 ok

router.beforeEach((to, from, next) => { //vuex里面的userinfo是否已经存在,不然就直接跳转到登录页面 if(store.state.userInfo || to.path === "/login") { next(); } else { next({ path: "/login" }) } });

这个 全局的 路由守卫,可以用来检验网址用户是否已经登陆, 因为每次跳转的时候,都会执行这个函数, 只要我们在这个函数里面,设置就ok了。

二、路由独享的守卫

路由独享的守卫:

是指某个路由页面独享这个守卫,其他的路由不能使用,提高了路由守卫的灵活性。

如下:

routes: [ { path: "/home", component: home, beforeEnter: (to, from, next) => { //进入这个路由前,检验登陆 if(store.state.userInfo || to.path === "/login") { next(); } else { next({ path: "/login" }) } } } ]; 三、组件内的路由守卫

组件内的路由守卫:

判断用户要离开该路由的时候,检验是否用户已经保存该编辑页面内容, 如果没有,跳出提示框,是否不保存离开该页面。 Tenderness 新宇 export default { data(){ return{ name:" Tenderness 新宇" } }, //路由进入前调用 beforeRouteEnter:(to, from, next)=>{ alert("你好呀"+this.name); alert(to.path + from.path); next(); next(vm => { alert("你好呀"+vm.name); }) }, //路由离开时调用,可以用在编辑页面 beforeRouteLeave:(to, from, next) => { if(confirm("离开该页面,不会保存你的操作,确认离开吗?") == true){ next(); }else{ next(false); } } } 四、怎么使用呢?

在项目中安装 vue-router npm安装 npm install vue-router 淘宝镜像安装 cnpm install vue-router 切换镜像源 这里需要全局下载nrm 然后 nrm ls 可以查看到我们在哪一个中 然后 nrm use 想要用到的安装方式 eg: nrm use cnpm 这时候就已经切换到淘宝镜像了

在项目中引入vue-router

import router from './router' 登陆路由拦截 router.beforeEach((to, from, next) => { if (to.name !== 'login') { if (!window.sessionStorage.tokenId) { router.push({name: 'login'}) } } next() }) 五、路由传参

VUE 路由父子传参的方式

方法一: getDescribe(id) { // 直接调用router.push实现携带参数的跳转this, this.router.push({ path:'/describle/${id}' //路由地址 })

需要在path中添加 /:id 来对应 $router.push 中 path 携带的参数。 在子组件中可以使用来获取传递的参数值

{ path: '/describe/:id', name: '组件名', component: 组件名 }

子组件中: 这样来获取参数 this.$route.params.id

方法二: this.$router.push({ name:'组件名', params:{ id:id } })

注意这里不能使用 :/id 来传递参数了, 因为父组件中,已经使用params来携带参数了。

{ path: '/describe', name: '组件名', component: 组件名 }

子组件中: 这样来获取参数 this.$route.params.id

好啦 就到这里吧 希望看到的你 有所帮助

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭