文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

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

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

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

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

包含的功能有:

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

  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. 三种全局守卫
// 入口文件 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(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(); }

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

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

10. 守卫的 next 方法

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯