广告
返回顶部
首页 > 资讯 > 精选 >Vue中的路由使用和多种守卫方法是什么
  • 584
分享到

Vue中的路由使用和多种守卫方法是什么

2023-07-05 02:07:19 584人浏览 八月长安
摘要

今天小编给大家分享一下Vue中的路由使用和多种守卫方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.vue-rou

今天小编给大家分享一下Vue中的路由使用和多种守卫方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1.vue-router

vue的一个插件库,专门用来实现对SPA应用的单页WEB应用(single page web application, SPA)。整个应用只有一个完整的页面。点击页面中的导航链接不会刷新页面,只会做页面的局部更新。数据需要通过ajax请求获取。

2.什么是路由

  • 一个路由就是一组映射关系(key :value)

  • key 为路径, value可能是function或componente

路由分类

后端路由:value 杲function,用于处理客户端提交的请求。工作过程: 服务器接收到一个请求时,根据请求路径找到匹配的函数来处理请求,返回响应数据。

前端路由: value是component,用于展示页面内容。工作过程: 当浏览器的路径改变时,对应的组件就会显示。

3.路由的基本使用

安装vue-router

npm i vue-router

应用插件

Vue.use(VueRouter)

router配置项

//  引入vueRouterimportvueRouterfrom'vue-router'// 引入组件importAboutfrom'../components/About'importHomefrom'../components/Home'export default new vueRouter({     routes: [{             path: '/about',             component: About         },         {             path: '/home',             component: Home         },     ]

})

使用router-link实现切换(注:router-link经过浏览器后就会变成a标签哦)

        <divclass="list-group">          <!-- 原始写法——使用a标签进行页面的跳转 -->          <!-- <a class="list-group-item active" href="./about.html">About</a>          <a class="list-group-item" href="./home.html">Home</a>-->          <!-- 使用vue-Router提供的标签进行路径的修改,实现路由的切换 -->          <router-link             class="list-group-item"            active-class="active"            to="/about">About           </router-link>          <router-link             class="list-group-item"            active-class="active"            to="/home">Home           </router-link>        </div>

使用router-view实现组件的呈现(类似于插槽)

          <divclass="panel-body">            <!-- 指定组件的呈现位置 -->            <router-view>            </router-view>          </div>

注:1.路由组件通常存放在pages文件夹,所以不要往components文件夹里面放了  
2.通过切换,“隐藏” 了的路由组件,默认是被销毁掉的,需要的时候再去挂载  
3.每个组件都有自己的$route属性,里面存储着自己的路由信息。  
4.整个应用只有一个router, 可以通过组件的$router属性获取到。

4.多级路由

在配置路由规则的以及路由里面进行配置下一级路由使用children:[ { } ]这种形式

    routes: [{            path: '/about',            component: About        },        {            path: '/home',            component: Home,            children: [{                    path: 'news',                    component: News                },                {                    path: 'message',                    component: Message                }            ]        },    ]

5.路由传参

有两种方式,第一种就是直接再路径里面写query参数,第二种就是params传参

路由命名(简化代码)

Vue中的路由使用和多种守卫方法是什么

再to的时候就不用写一大堆路径了

Vue中的路由使用和多种守卫方法是什么

1.params

配置路由声明接受params参数

                    children:[                        {                            name:'xiangqing',                            path:'detail/:id/:title',// 使用占位符声明接收参数                            component:Detail,                        }                    ]

传递参数

<!-- 跳转路由并携带params参数,to的字符串写法 -->        <router-link:to="`/home/message/detail/${m.id}/${m.title}`">{{m.title}}</router-link>        <!-- 跳转路由并携带params参数,to的对象写法 -->        <router-link          :to="{            // 简化路径代码            name:'xiangqing',// 必须使用name,不能使用path             //  params:所携带的参数            params:{                id:m.id,                title:m.title,            }        }"        >{{m.title}}</router-link>

3,接受参数

    <div>        <ul>            <!-- params写法 -->            <li>消息:{{$route.params.id}}</li>            <li>编号:{{$route.params.title}}</li>        </ul>    </div>

2.路由的props配置

一共有三种配置方法,分别是对象式,布尔值式,函数式目的是让路由组件更方便的接受到参数

children: [{    name: 'xiangqing',    // path: 'detail/:id/:title', // 使用占位符声明接收参数    path: 'detail', // query不使用占位符声明接收参数    component: Detail,    // props的第一种写法    // props:{a:"1",b:"2"},    // 第二种写法,值为布尔值,若布尔值为真,就会把该路由组件收到的所有params參数,以props的形式传给Detail    // props:true,    // props的第三种写法,值为函数    props($route) {// 使用解构赋值连续写法简化代码        return {id:$route.query.id,title:$route.query.title}    }    // props({query:{id,title}}) {// 使用解构赋值连续写法简化代码    //     return {id,title}    // }}]

3.<router -link>的replace属性

作用:控制路由跳转时操作浏览器历史记录的模式

浏览器的历史记录有两种写入方式:分别为push和replace,push 是追加历史记录,replace 是替换当前记录。路由跳转时候默认为push,所以为push的时候可以进行后退前进操作,而replace直接就是替换掉之前的那个地址所以在replace的里面智慧存在一个地址,也就是当前所呈现的那个地址,就好比做核算,push是排队的人,replace是做核酸的医务人员

如何开启replace模式:<router-link replace ...... >News</router- link>即可

Vue中的路由使用和多种守卫方法是什么

4.编程式路由导航

作用:不借助<router- link>实现路由跳转,让路由跳转更加灵活

  methods: {      //后退    back() {      this.$router.back();    },      //前进    forward() {      this.$router.forward();    },      //可以后退也可以前进    test() {      this.$router.Go(-2);    }  }

5.缓存路由组件

作用:让不展示的路由组件保持挂载,不被销毁。

具体实现方法

<keep-alivelinclude= "News">K router-view></router-view></keep-alive>

两个新的生命周期钩子

作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态分别是activated 路由组件被激活时触发。deactivated 路由组件失活时触发。

6.路由守卫

作用:对路由进行权限控制

分类:全局守卫、独享守卫、组件内守卫

1.全局守卫

router.beforeEach((to, from, next) => {    console.log(to, from);    if (to.meta.isAuth) {//判断是否需要鉴权        if (localStorage.getItem('school') ==='shanyu') {            next();        } else {            alert('该学校无权限查看此内容')        }    } else {        next()    }})// 后置路由守卫,切换路由后调用router.afterEach((to, from) => {    console.log(to, from);    document.title=to.meta.title||'山鱼屋'})

2.独享路由守卫

专门服务于一个路由的守卫

beforeEnter: (to, from, next) => {                        console.log(to, from);                        if (to.meta.isAuth) { //判断是否需要鉴权                            if (localStorage.getItem('school') ==='shanyu') {                                next();                            } else {                                alert('该学校无权限查看此内容')                            }                        } else {                            next()                        }                    },

3.组件内守卫

在进入/离开组件时被激活

//进入守卫:通过路由规则,进入该组件时被调用beforeRouteEnter (to, from, next) {},//离开守卫:通过路由规则,离开该组件时被调用beforeRouteLeave (to, from, next) {}

4.路由器的两种工作模式

对于一个url来说#其后面的内容就是hash值。

Vue中的路由使用和多种守卫方法是什么

就是这个#后面的

hash的特点及使用

地址中永远带着#号

若以后将地址通过第三方手机app分享,若app校验严格, 则地址会被标记为不合法。

兼容性较好。

history模式

地址干净,美观。

兼容性和hash模式相比略差。

应用部署上线时需要后端人员支持,解决刷新页面服务端404的问题。

切换history模式

Vue中的路由使用和多种守卫方法是什么

在route文件夹下面的index文件里添加 `mode: 'history'`这句代码即可(默认的是hash模式)

以上就是“Vue中的路由使用和多种守卫方法是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Vue中的路由使用和多种守卫方法是什么

本文链接: https://www.lsjlt.com/news/349169.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue中的路由使用和多种守卫方法是什么
    今天小编给大家分享一下Vue中的路由使用和多种守卫方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.vue-rou...
    99+
    2023-07-05
  • 一文浅析Vue中的路由和多种守卫
    4.多级路由在配置路由规则的以及路由里面进行配置下一级路由使用children:[ { } ]这种形式 routes: [{ path: '/about', compon...
    99+
    2023-05-14
    Vue
  • vue路由守卫的三种类型分别是什么
    这篇“vue路由守卫的三种类型分别是什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“vue路由守卫的三种类型分别是什么”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来...
    99+
    2023-06-06
  • angular9中路由守卫的使用方法
    小编给大家分享一下angular9中路由守卫的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!路由守卫是什么任何用户都能在任何时候导航到任何地方。但有时候出...
    99+
    2023-06-14
  • vue的路由守卫和keep-alive后生命周期是什么
    本文小编为大家详细介绍“vue的路由守卫和keep-alive后生命周期是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue的路由守卫和keep-alive后生命周期是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-06-29
  • 详解vue中路由的安装和使用方法
    Vue 是一款流行的前端开发框架,它提供了诸多方便开发的工具和功能。其中,Vue 路由能够帮助我们创建单页应用程序,并且帮助我们实现路由功能。本篇文章将会介绍 Vue 路由的使用。Vue路由安装在开始使用 Vue 路由之前,我们需要先安装 ...
    99+
    2023-05-14
  • Vue中$router.push()路由切换、传参和获取参数的方法是什么
    这篇文章主要介绍“Vue中$router.push()路由切换、传参和获取参数的方法是什么”,在日常操作中,相信很多人在Vue中$router.push()路由切换、传参和获取参数的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好...
    99+
    2023-07-05
  • react-navigation6.x路由库的基本使用方法是什么
    这篇文章主要讲解了“react-navigation6.x路由库的基本使用方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react-navigation6.x路由库的基本使用方法是...
    99+
    2023-06-25
  • laravel框架中路由设置、参数和命名的方法是什么
    本篇内容介绍了“laravel框架中路由设置、参数和命名的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!laravel中必须先配置...
    99+
    2023-07-04
  • vue遮罩和ref的使用方法是什么
    这篇文章主要讲解了“vue遮罩和ref的使用方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue遮罩和ref的使用方法是什么”吧!创建conform.vue,其内容如下:<t...
    99+
    2023-07-05
  • Vue中使用计算属性的方法是什么
    这篇文章主要介绍“Vue中使用计算属性的方法是什么”,在日常操作中,相信很多人在Vue中使用计算属性的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue中使用计算属性的方法是什么”的疑惑有所帮助!...
    99+
    2023-06-21
  • html图片标签、绝对路径和相对路径的使用方法是什么
    本篇内容介绍了“html图片标签、绝对路径和相对路径的使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2022-10-19
  • Python中闭包和自由变量的使用方法与注意事项是什么
    这篇文章主要为大家展示了“Python中闭包和自由变量的使用方法与注意事项是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中闭包和自由变量的使用方法与注意事项是什么”这篇文章吧。...
    99+
    2023-06-29
  • PHP+Socket中IO多路复用及实现web服务器的方法是什么
    本篇内容介绍了“PHP+Socket中IO多路复用及实现web服务器的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php原生so...
    99+
    2023-07-05
  • Pytest中skip和skipif的使用方法是什么
    本篇内容主要讲解“Pytest中skip和skipif的使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Pytest中skip和skipif的使用方法是什么”吧!skip的用法使用示...
    99+
    2023-06-20
  • Vue中mixins的使用方法及实际项目应用是什么
    这篇文章主要介绍了Vue中mixins的使用方法及实际项目应用是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中mixins的使用方法及实际项目应用是什么文章都会有所收获,下面我们一起来看看吧。(1)...
    99+
    2023-07-05
  • Python中chinesecalendar安装和使用的方法是什么
    基础用法chinesecalendar的简介该库是判断某年某月某一天是不是工作日/节假日。支持将春节延长,时间跨度为2004年至2023年,其中包括2020年。由于次年的节假日安排,取决于国务院发布的日程。 所以本项目一般会在国务院更新以后...
    99+
    2023-05-19
    Python chinesecalendar
  • numpy中meshgrid和mgrid的区别和使用方法是什么
    这篇文章主要介绍了numpy中meshgrid和mgrid的区别和使用方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇numpy中meshgrid和mgrid的区别和使用方法是什么文章都会有所收获,下面...
    99+
    2023-07-05
  • Java中Term Vector的概念和使用方法是什么
    本篇内容主要讲解“Java中Term Vector的概念和使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中Term Vector的概念和使用方法是什么”吧!term vec...
    99+
    2023-06-03
  • Angular中navigate()和navigateByUrl()使用方法的区别是什么
    这篇文章主要介绍“Angular中navigate()和navigateByUrl()使用方法的区别是什么”,在日常操作中,相信很多人在Angular中navigate()和navigateByUrl()使...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作