vue 实现多个路由共用同一个页面组件

这篇具有很好参考价值的文章主要介绍了vue 实现多个路由共用同一个页面组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方法一:在router-view里添加key控制

这样的弊端是如果router-view里包含其他组件,切换其他组件会让其他组件也重新渲染。

这样的问题是导致切换路由会闪烁一下。因为切换后所有钩子函数都重新触发了。文章来源地址https://www.toymoban.com/news/detail-729894.html

// .vue中  
<router-view :key="key" />  //必须加上key属性,让每次进入路由时都重新触发钩子函数

computed: {
    key() {
      // 只要保证 key 唯一性就可以了,保证不同页面的 key 不相同
      return this.$route.Path
    }
  },

// 在路由文件中,让多个路由共用同一个组件,保证路由path和name属性具有唯一性 。
children: [
    {
        path: 'goods1',
        name: 'goods1',
        component: () => import('@/views/menus/goods/Goods')
    },
    {
        path: 'goods2',
        name: 'goods2',
        component: () => import('@/views/menus/goods/Goods')
    }
]

/** 
*
* 多个页面公用同一个组件时:通过以上方法,会使得切换所有子组件都重新渲染相应子组件。
* 如果父组件下只有A B 组件需要共用,还有C D组件不需要公用,切换C D组件也同样会重新渲染C D ,影响性能。
* 还可以用第二种方法:通过监听路由的变化,来重写初始数据 
*/

方法二:通过监听路由的方法来重新触发钩子函数

// 1.
watch: {
      $route:{
          handler:'resetData',
      }
},
// 2.
methods:{
    resetData() {
        if(this.$route.fullPath=='/strategy'){
            //在这里获取并处理该路由下所需要的数据。
        }
}

到了这里,关于vue 实现多个路由共用同一个页面组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Nginx配置 多个域名指向同一个服务器文件

    Nginx配置 多个域名指向同一个服务器文件

    因为公司开发方面有响应的需求,需要多个域名指向同一个服务器下的文件(即访问的域名不同但访问的服务器下的文件是同一个) 已经过解析 并且指向同一个ip地址的多个域名 服务器nginx已配置好 如果有需求需要给域名配置ssl证书(https) 找到服务器的nginx.conf文件 一般情况

    2024年02月11日
    浏览(35)
  • 在IDEA同一个窗口中同时打开多个独立项目

    在IDEA同一个窗口中同时打开多个独立项目

    不知道大家在使用Intellij Idea的时候,有没有遇到过类似的问题?自己负责了很多项目,使用idea的时候,经常要在不通的项目代码之间切换来切换去。搜索代码的时候只能搜到当前打开的这个项目代码。 因为这些原因,一些零碎的小项目还是得用Eclipse开发。有时候也会用An

    2024年02月14日
    浏览(152)
  • 【注意】当同一个Class的多个对象出现在同一段代码内的时候,极易出错。

    【注意】当同一个Class的多个对象出现在同一段代码内的时候,极易出错。

    下面的 paymentQuery 方法坐落于我们lijianjin系统的LiJianJinPaymentQueryBizService。 这两个bankOrderFlow、orderFlow,... 乱花渐欲迷人眼的赶脚,但其实,这是像“shǐ”一样的代码。         在我们的zhongtai-channel-provider, 上周出现并紧急fix了一个bug。竟然也是 此种情况 引发的bug。   先上

    2024年04月28日
    浏览(40)
  • Linux--多个源文件编译成同一个可执行文件

    Linux--多个源文件编译成同一个可执行文件

    写法一:不推荐 写法二、推荐 $@: 代表目标文件    $^: 代表生成目标文件的所有源文件

    2024年02月15日
    浏览(40)
  • git同一分支上多个commit合成一个的操作

    git同一分支上多个commit合成一个的操作

    1、首先git log——查看当前分支的提交记录 ,想要把圈起来的commit合成一个, 2、开始合并,敲下面这个命令 git rebase -i commitId commitId即找出要合并的几个commit的前一个commit的ID -i 的参数是不需要合并的 commit 的 hash 值,这里指的是第一条 commit, 接着键盘摁下 i 键,我们就进

    2024年01月19日
    浏览(43)
  • kafka配置多个消费者groupid kafka多个消费者消费同一个partition(java)

    kafka配置多个消费者groupid kafka多个消费者消费同一个partition(java)

    kafka是由Apache软件基金会开发的一个开源流处理平台。kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 kafka中partition类似数据库中的分表数据,可以起到水平扩展数据的目的,比如有a,b,c,d,e,f 6个数据,某个topic有两个partition,一

    2024年01月22日
    浏览(66)
  • Autofac中多个类继承同一个接口,如何注入?与抽象工厂模式相结合

    Autofac中多个类继承同一个接口,如何注入?与抽象工厂模式相结合

    需求: 原来是抽象工厂模式,多个类继承同一个接口。 现在需要使用Autofac进行选择性注入。 Autofac默认常识: Autofac中多个类继承同一个接口,默认是最后一个接口注入的类。 解决方案:(约定大于配置) :①工厂名默认4位字符 ② 命名Service的时候以工厂名开头 ③Autofac注入的时候先

    2024年02月10日
    浏览(45)
  • 推荐:vue-3d-loader支持.dae/.fbx/.gltf/.glb/.obj/.ply/.stl/.json,并支持同一个场景导入多个不同3D模型,支持mtl材质以及jpg/png等图片纹理

    推荐:vue-3d-loader支持.dae/.fbx/.gltf/.glb/.obj/.ply/.stl/.json,并支持同一个场景导入多个不同3D模型,支持mtl材质以及jpg/png等图片纹理

    vue-3d-loader是vueJS + threeJS整合的一个3d展示组件。 支持.dae/.fbx/.gltf/.glb/.obj/.ply/.stl/.json,并支持同一个场景导入多个不同3D模型,支持mtl材质以及jpg/png等图片纹理 vue3请安装 2.0.0 及以上版本࿰

    2024年02月10日
    浏览(16)
  • Linux系统中判断多个设备使用了同一个IP地址,判断IP地址冲突的问题

    在Linux系统中,如果多个设备使用了同一个IP地址,就会发生IP地址冲突的问题。IP地址冲突会导致网络连接不稳定,甚至会导致网络中断。因此,在使用Linux系统时,需要及时发现和解决IP地址冲突问题。 下面介绍几种在Linux系统中判断IP地址冲突的方法。 1.使用ping命令 ping命

    2024年02月16日
    浏览(40)
  • 如何在rabbitmq中实现一个生产者,多个消费者,多个消费者都能收到同一条消息

    如何在rabbitmq中实现一个生产者,多个消费者,多个消费者都能收到同一条消息

    场景:用户登录,邀请其它用户进行视频会议,收到邀请的用户进入会议 rabbitmq实现思路: 选型:发布订阅模式(Publish/Subscribe) 一个生产者,多个消费者,每一个消费者都有自己的一个队列,生产者没有将消息直接发送到队列,而是发送到了交换机,每个队列绑定交换机,

    2023年04月25日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包