码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Vue 基础篇】监听路由的变化和跳转404页面


    提示:前端查漏补缺,仅代表个人观点

    文章目录

    • 一、前言
    • 二、实战步骤
      • 1. 监听路由的方法
        • 方法一:watch
        • 方法二:watch(深度监听)
        • 方法三:watch + methods
      • 2. 跳转404页面
    • 三、注意事项
      • 1. 路由重定向的问题


    今天是农历八月十五中秋节,先祝看到此文章的博友中秋节快乐!!!

    一、前言

    本文章主要讲解Vue监听路由、跳转404页面的实现和需要注意的事项,欢迎点赞评论!


    二、实战步骤

    1. 监听路由的方法

    方法一:watch

    // 当路由发生变化的时候执行
    
    watch:{
      $route(to,from){
        console.log(to.path);  // 去哪
        console.log(from.path);   // 从哪来
      }
    },
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    方法二:watch(深度监听)

    // 当路由发生变化的时候执行
    
    watch: {
      $route: {
        handler: function(val, oldVal){
          console.log(val);
        },
        // 深度观察监听
        deep: true
      }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    方法三:watch + methods

    // 当路由发生变化的时候执行
    
    watch: {
      '$route':'getPath'
    },
    methods: {
      getPath(){
        console.log(this.$route.path);
      }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2. 跳转404页面

    代码如下(示例):

    import ErrorPage from '@/views/ErrorPage.vue'
    Vue.use(Router)
    const routes=[
    	// 其他就省略了
      {
        path: '/error',
        name: 'ErrorPage',
        component: ErrorPage,
      },
    ]
     
    const router = new Router({
      mode: 'history',
      routes: routes
    })
     
    router.beforeEach((to, from, next) => {
      //  从其他地方访问是否有这个地址,没有的话就跳转去404页面
        if(to.matched.length == 0){
          from.path ? next({name: from.name}) : next('/error')
        }
        next();
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    三、注意事项

    1. 路由重定向的问题

    • 假如在路由中,你设置了一个重定向:
      当你手动输入http://localhost:8080/order的时候,会主动重定向到http://localhost:8080/order/order-list
    // 错误写法,当你刷新页面或者前往其他页面,并没有打印出你想要的东西
    
    watch: {
            $route: {
                handler: function (val, oldVal) {
                    console.log('路由信息:',val);
                },
                // 深度观察监听
                deep: true,
            }
        },
    
    // 正确写法
    watch: {
            $route: {
                // eslint-disable-next-line no-unused-vars
                handler: function (val, oldVal) {
                    console.log('路由信息:',val);
                },
                // 深度观察监听
                deep: true,
                immediate:true    //immediate设为true后,则监听的这个对象会立即输出,也就是说一刷新页面就会在控制台输出
            }
        },  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 利用watch 监听,immediate: true;可以解决路由重定向问题,进到任一路由或者界面,都马上执行 ,就比如重定向路由后,不添加该属性为true,则有可能进行不了下一步操作
  • 相关阅读:
    mysql索引失效的几个场景
    【Python】PySpark 数据计算 ① ( RDD#map 方法 | RDD#map 语法 | 传入普通函数 | 传入 lambda 匿名函数 | 链式调用 )
    【HTML】HTML基础1(第一个网站!)
    Java 大厂面试必刷题 Day1:何为面向对象编程的思想?面向对象三大特征是什么?
    CloudCompare 二次开发(18)——法线空间采样
    【将图片链接中的图片合并成PDF】
    MYSQL一站式学习,看完即学完
    Mac如何查看与更高切换输入法的快捷键
    遥感期刊影响因子(中科院分区)
    k8s nginx.conf配置文件配置
  • 原文地址:https://blog.csdn.net/weixin_43523043/article/details/126797749
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号