• 若依 vue前端 动态设置路由path不同参数 在页面容器里打开新页面,面包屑和标签页标题根据参数动态改变


    先来看看效果:

    场景:在费用配置列表中,点击每一项的配置,都会在页面容器内部打开一个新页面,所以新页面的路径一样,根据传的参数不同,面包屑和标签页标题动态改变

    1. http://localhost/feeManage/feeConfigDetail?id=4&metaTitle=3253的费用配置
    2. http://localhost/feeManage/feeConfigDetail?id=1&metaTitle=eww的费用配置

    若依路由简单介绍:

    若依vue前端能跳转到新路径的方法,我暂且知道这三种形式:

    1 在若依的菜单项添加

     2 在router里添加

     3 直接用标签里跳转

     第1和第2钟做法,都是要提前声明一个路由对象,然后使用或者$router.push跳转

    1. this.$router.push({
    2. path: '/feeManage/feeConfigDetail',
    3. query: {
    4. id: row.id,
    5. metaTitle: row.chargeName + '的费用配置'
    6. },
    7. })

    第3钟做法,不用声明就可以直接跳转,但是因为你不曾声明过,所以面包屑和标签页标题是不会发生改变的。如下:

     

    如果直接使用第2种 在router里添加路由的做法,缺点也很明显,那就是权限是被固定了,不能根据父级菜单的权限进行权限拦截了。所以我使用了第1种方法,同时还要注意,这是详细页面,不应该在左侧菜单栏出现,所以要隐藏

    代码实现

    讲清楚路由后,就要讲,如何动态设置路由path不同参数 在页面容器里打开新页面,面包屑和标签页标题根据参数动态改变

     使用1方法创建好路由后,然后用$router.push设置传的参数,我们使用metaTitle来当页面标题

    1. this.$router.push({
    2. path: '/feeManage/feeConfigDetail',
    3. query: {
    4. id: row.id,
    5. metaTitle: row.chargeName + '的费用配置'
    6. },
    7. })

    如果你只做到了这里,你就会发现,它确实跳转页面了,但是它是同一个页面进行了不同参数的刷新,然后页面的标题也没有动态改变,而是你之前菜单配置时写的标题,如图:

                      

     下面就需要改改若依的源码了:

    1、先改面包屑

     2、在页面容器中,打开新的标签页,改标签页标题(把要修改文件和修改内容框出来,有个明显的对比,知道改哪里)

     

     最后在新页面取出参数

    最后效果

    有bug

    也是写完上面的内容以后,才发现有bug,路径一样,参数不一样的标签,去单击的时候,没有刷新内容,而是保留第一次点击的标签的页面。。。如图

     bug解决

    原因:若依vue前端源码中用的标签进行页面跳转,因为路径一样,参数不一样的页面本质上都是同一个vue,而这个vue已经加载出来就不会进行销毁重新加载了,所以我们要做的就是监听参数然后重新渲染,达到刷新页面的效果

    在自己的跳转页面vue中监听路由参数:

    最后效果(如果还有bug就评论区告诉我,现在我暂时没发现了)

     

     

  • 相关阅读:
    【Python案例】——利用Django搭建一个钓鱼网站【轻松入门】
    C#,骑士游历问题(Knight‘s Tour Problem)的恩斯多夫(Warnsdorff‘s Algorithm)算法与源代码
    测试岗电话面试——必问题型
    提高编程效率专辑—数据导入工具①
    leetcode 二分查找·系统掌握 寻找旋转排序数组中的最小值II
    大语言模型架构---Transformer 模型
    Java中如何清空一个HashSet对象呢?
    Geotools实现shape文件的写入
    【yolov4】基于yolov4深度学习网络目标检测MATLAB仿真
    智慧园区内涝积水解决方案
  • 原文地址:https://blog.csdn.net/weixin_43991241/article/details/126319259