iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >VueRouter在实际项目中用到的高级技巧有哪些
  • 545
分享到

VueRouter在实际项目中用到的高级技巧有哪些

2024-04-02 19:04:59 545人浏览 独家记忆
摘要

VueRouter在实际项目中用到的高级技巧有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Vue Router 是 vue.js 官

VueRouter在实际项目中用到的高级技巧有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Vue Router 是 vue.js 官方的路由管理器。

它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。

VueRouter在实际项目中用到的高级技巧有哪些

包含的功能有:

  • 嵌套的路由/视图表

  • 模块化的、基于组件的路由配置

  • 路由参数、查询、通配符

  • 基于 Vue.js 过渡系统的视图过渡效果

  • 细粒度的导航控制

  • 带有自动激活的 CSS class 的链接

  • HTML5 历史模式或 hash 模式,在 IE9 中自动降级

  • 自定义的滚动条行为

本文是作者是实际项目中遇到的一些总结,主要包括:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 响应路由参数变化

  3. 路由匹配

  4. 高级匹配模式

  5. 匹配优先级

  6. push和replace的第二个第三个参数

  7. 路由视图

  8. 重定向

  9. 使用props解耦$route

  10. 导航守卫

  11. 守卫的next方法

希望本文对你有所帮助。

正文

1. 响应路由参数变化

针对复用组件(只是路由参数发生改变),生命周期函数钩子不会被调用,如何能刷新组件了?

watch监听

watch: {   '$route' (to, from) {   // 对路由变化作出响应...   } }

beforeRouteUpdate

beforeRouteUpdate (to, from, next) { // React to route changes... / / don't forget to call next() }

2. 路由匹配 

{ // 会匹配所有路径 path: '*' } { // 会匹配以 `/user-` 开头的任意路径 path: '/user-*' }

注意:当使用通配符路由时,请确保路由的顺序是正确的,也就是说含有通配符的路由应该放在最后。路由 { path: '*' } 通常用于客户端 404  错误。

如果你使用了History 模式,请确保正确配置你的服务器

当使用一个通配符时,$route.params 内会自动添加一个名为 pathMatch 参数。

它包含了 URL 通过通配符被匹配的部分:

// 给出一个路由 { path: '/user-*' } this.$router.push('/user-admin') this.$route.params.pathMatch // 'admin' // 给出一个路由 { path: '*' } this.$router.push('/non-existing') this.$route.params.pathMatch // '/non-existing'

3. 高级匹配模式 

// 命名参数必须有"单个字符"[A-Za-z09]组成   // ?可选参数 { path: '/optional-params/:foo?' } // 路由跳转是可以设置或者不设置foo参数,可选 <router-link to="/optional-params">/optional-params</router-link> <router-link to="/optional-params/foo">/optional-params/foo</router-link>   // 零个或多个参数 { path: '/optional-params './views/Number.vue') }  // 组件获取 export default{   props: ['name'] }

9. 导航守卫

1. 三种全局守卫
  • router.beforeEach 全局前置守卫 进入路由之前。

  • router.beforeResolve 全局解析守卫2.5.0新增。在beforeRouteEnter调用之后调用。

  • router.afterEach 全局后置钩子 进入路由之后。 

// 入口文件 import router from './router'   // 全局前置守卫 router.beforeEach((to, from, next) => { console.log('beforeEach 全局前置守卫'); next(); }); // 全局解析守卫 router.beforeResolve((to, from, next) => { console.log('beforeResolve 全局解析守卫'); next(); }); // 全局后置守卫 router.afterEach((to, from) => { console.log('afterEach 全局后置守卫'); });
2. 路由独享守卫

beforeEnter全局前置守卫进入路由之前。

{   path: '/number/:name',   props: true,   name: 'number',   // 路由独享守卫   beforeEnter: (to, from, next) => {       console.log('beforeEnter 路由独享守卫');       next();   },   component: () => import(  './views/Number.vue') }

 VueRouter在实际项目中用到的高级技巧有哪些

3. 组件内守卫
  • beforeRouteEnter

  • beforeRouteUpdate(2.2新增)

  • beforeRouteLeave 

beforeRouteEnter(to, from, next) {   // 在渲染该组件的对应路由被 confirm 前调用   // 不!能!获取组件实例 `this`   // 因为当守卫执行前,组件实例还没被创建   console.log('beforeRouteEnter 组件内进入守卫');   next(); }, beforeRouteUpdate(to, from, next) {   // 在当前路由改变,但是该组件被复用时调用   // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,   // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。   // 可以访问组件实例 `this`   console.log('beforeRouteUpdate 组件内更新守卫');   next(); }, beforeRouteLeave(to, from, next) {   // 导航离开该组件的对应路由时调用   // 可以访问组件实例 `this`   console.log('beforeRouteLeave 组件内离开守卫');   next(); }
  • 组件1跳转到组件2,然后组件2跳转组件2本身 

VueRouter在实际项目中用到的高级技巧有哪些

  • 组件1跳转到组件2,然后组件2跳转组件1

VueRouter在实际项目中用到的高级技巧有哪些

10. 守卫的 next 方法

  • next: 调用该方法 resolve 钩子。

  • next(): 进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是 confirmed (确认的)。

  • next(false): 中断当前的导航。如果浏览器的 URL 改变了 (可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from  路由对应的地址。

  • next('/') 或者 next({ path: '/' }): 跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。你可以向 next  传递任意位置对象,且允许设置诸如 replace: true、name: 'home' 之类的选项以及任何用在 router-link 的 to prop 或  router.push 中的选项。

  • next(error): (2.4.0+) 如果传入 next 的参数是一个 Error 实例,则导航会被终止且该错误会被传递给  router.onError() 注册过的回调。

关于VueRouter在实际项目中用到的高级技巧有哪些问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网node.js频道了解更多相关知识。

--结束END--

本文标题: VueRouter在实际项目中用到的高级技巧有哪些

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

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

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

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

下载Word文档
猜你喜欢
  • VueRouter在实际项目中用到的高级技巧有哪些
    VueRouter在实际项目中用到的高级技巧有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Vue Router 是 Vue.js 官...
    99+
    2024-04-02
  • CSS开发进阶:高级技巧在实际项目中的应用经验
    CSS(层叠样式表)是一种常用的网页样式设计语言,用于定义网页的布局、字体、颜色等外观表现。它的基本语法简单易懂,但是随着项目的复杂性增加,个人开发者或者团队开发人员可能会面临一些挑战。在本文中,我们将探讨一些CSS开发的高级技巧,并分享它...
    99+
    2023-11-02
    动画效果 性能优化 响应式设计
  • 在项目实践中的CSS技巧有哪些
    本篇文章为大家展示了在项目实践中的CSS技巧有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。用DIV+CSS布局,已经成了流行趋势,当然,这也是有原因的。那就是...
    99+
    2024-04-02
  • C++sort函数在实际项目中的应用技巧
    sort 函数,用于对容器或数组排序,可根据比较器函数按指定顺序排序。用法:指定范围或数组,并可使用比较器函数。实战案例:可使用比较器函数对物品列表按价格等属性排序。性能考虑:时间复杂度...
    99+
    2024-04-02
  • Vue项目中实用小技巧有哪些
    这篇文章将为大家详细讲解有关Vue项目中实用小技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求一:为路径配置别名在开发过程中,我们经常需要引入各种文件,如图片...
    99+
    2024-04-02
  • CSS中的高级使用技巧有哪些
    这篇文章主要为大家展示了“CSS中的高级使用技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS中的高级使用技巧有哪些”这篇文章吧。 使用 :not...
    99+
    2024-04-02
  • JavaScript的高级技巧有哪些
    本篇内容介绍了“JavaScript的高级技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 安...
    99+
    2024-04-02
  • CSS的高级技巧有哪些
    CSS的高级技巧有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。◆使用 :not() 在菜单上应用/取...
    99+
    2024-04-02
  • 有哪些高级的Python技巧
    本篇内容主要讲解“有哪些高级的Python技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些高级的Python技巧”吧!1.通过多个键值将对象进行排序假设要对以下字典列表进行排序:peop...
    99+
    2023-06-16
  • 管理Angular项目的实用技巧有哪些
    这篇文章主要介绍“管理Angular项目的实用技巧有哪些”,在日常操作中,相信很多人在管理Angular项目的实用技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”管理...
    99+
    2024-04-02
  • PyCharm 实用技巧:高效添加库到项目中
    PyCharm 是一款功能强大的 Python 集成开发环境,为开发人员提供了丰富的功能和工具,能够帮助开发者更高效地进行 Python 开发。在实际开发过程中,经常需要添加第三方库以...
    99+
    2024-02-22
    pycharm 高效 添加库
  • 使用CSS的高级技巧有哪些
    这篇文章给大家分享的是有关使用CSS的高级技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.使用CSS复位CSS复位可以在不同的浏览器上保持一致的样式风格。你可以使用C...
    99+
    2024-04-02
  • Vue项目常用的技巧有哪些
    本篇内容介绍了“Vue项目常用的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 使用 $attrs 和 $listeners ...
    99+
    2023-07-04
  • Java项目中API的使用技巧有哪些
    Java项目中API的使用技巧有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. 不要自己去实现安全框架说真的,不要尝试自己去实现安全方面的代码,这太难了。几乎每个人...
    99+
    2023-05-31
    java api ava
  • CSS高级使用技巧有哪些
    这篇文章主要为大家展示了“CSS高级使用技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS高级使用技巧有哪些”这篇文章吧。 CSS 如何将一张彩...
    99+
    2024-04-02
  • PHP 项目管理中的 Git 高级技巧
    变基和拣选 变基允许您在合并更改之前修改提交历史记录。使用交互式变基(git rebase -i),您可以重新排序、合并或删除提交。拣选(git cherry-pick)则允许您将特定提交从一个分支移植到另一个分支,而无需合并整个分支。这...
    99+
    2024-04-02
  • Python开发中有哪些高级技巧
    这期内容当中小编将会给大家带来有关Python开发中有哪些高级技巧,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python 开发中有哪些高级技巧这是知乎上一个问题,我总结了一些常见的技巧在这里,可能谈不...
    99+
    2023-06-16
  • JavaScript中常用的简洁高级技巧有哪些
    这篇文章主要为大家展示了“JavaScript中常用的简洁高级技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中常用的简洁高级技巧有...
    99+
    2024-04-02
  • 管理Angular项目的技巧有哪些
    这篇文章主要介绍“管理Angular项目的技巧有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“管理Angular项目的技巧有哪些”文章能帮助大家解决问题。1. 准守单一职责原则很多单应用程序核心...
    99+
    2023-07-04
  • 批处理的高级运用技巧有哪些
    这篇文章主要为大家展示了“批处理的高级运用技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“批处理的高级运用技巧有哪些”这篇文章吧。批处理的高级运用1 一.简单批处理内部命令  ...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作