• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > Vue多个路由绑定同一组件造成created不执行的解决办法

Vue多个路由绑定同一组件造成created不执行的解决办法

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了Vue多个路由,绑定同一组件,created不执行,解决办法等相关知识,希望对您有所帮助

Vue多个路由绑定同一组件造成created不执行的解决办法。

具体开发中遇到的需求是:

多个页面调用同一组件,通过传参获取不同的数据展示在页面上。多个路由映射到同个组件,只是传参不同,页面切换不会触发组件的创建cteated方法,怎么办?

这里贴出官方给出的解决办法:

https://router.vuejs.org/zh-cn/essentials/dynamic-matching.html#%E5%93%8D%E5%BA%94%E8%B7%AF%E7%94%B1%E5%8F%82%E6%95%B0%E7%9A%84%E5%8F%98%E5%8C%96


通过watch(监测变化) $route 对象,将获取数据的方法写在watch里


后来具体我们尝试了以下几种方法都可实现:

方法一:query传参

router.js(路由配置)

{    path: '/back',    redirect: '/back/yjzx',    component: viewport,    children: [        { path: 'yjzx', name: 'yjzx', component: article }    ]}

Vue(其他页面调用)

<router-link :to="{name:'yjzx', query: {type: '1'}}" tag="li"><!--多个router-link的name一样或不一样都可,因为带的参数不一样-->    <i class="fa fa-list-ul fa-fw"></i>    <span>业界资讯</span></router-link>

Vue(页面代码)

watch: {    '$route' (to, from) {        console.log(this.$route.query)    }},

方法二:params传参

router.js(路由配置)

{    path: '/back',    redirect: '/back/yjzx',    component: viewport,    children: [        { path: 'yjzx', name: 'yjzx', component: article }    ]}

Vue(其他页面调用)

<router-link :to="{name:'yjzx', params: {type: '1'}}" tag="li"><!--多个router-link的name必须不一样,因为参数是以POST方式传递-->    <i class="fa fa-list-ul fa-fw"></i>    <span>业界资讯</span></router-link>

Vue(页面代码)

watch: {    '$route' (to, from) {        console.log(this.$route.params)    }},

方法三:通过变量传参

router.js(路由配置)

{    path: '/back',    redirect: '/back/yjzx/:type',    component: viewport,    children: [        { path: 'yjzx/:type', name: 'yjzx', component: article }    ]}

Vue(其他页面调用)

<router-link :to="{path:'/back/yjzx/1'}" tag="li"><!--多个router-link的name一样或不一样都可,因为参数不同-->    <i class="fa fa-list-ul fa-fw"></i>    <span>业界资讯</span></router-link>

Vue(页面代码)

watch: {    '$route' (to, from) {        console.log(this.$route.params)    }},

3种方式都实践过,都可以实现,看个人的爱好和项目情况来定吧。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Vue多个路由绑定同一组件造成created不执行的解决办法

相关文章

  • 2022-04-29聊聊怎么在小程序中实现一个可截断的瀑布流组件
  • 2022-04-29“内容”优化影响排名 “内容”提升用户体验
  • 2022-04-29深入浅析vue3+vite中怎么使用svg图标
  • 2022-04-29详解php中函数的引用传递和返回 (附代码)
  • 2022-04-29vue2&vue3数据响应式原理分析及手动实现(实例详解)
  • 2022-04-29wordpress前端图片怎么上传
  • 2022-04-29阿里云Composer全量镜像下载配置及常见问题解答
  • 2022-04-29vue3为什么快?vue3的效率提升主要在哪方面?
  • 2022-04-29聊聊Bootstrap4中的网格系统
  • 2022-04-29PHP会话控制:cookie和session区别与用法深入理解

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 浅谈小程序怎么实现列表滚动上下联动效果
    • Discuz3.4特殊字符乱码解决方案
    • WordPress获取指定标签下的文章总数
    • WordPress通过加密隐藏wp-login/admin后台默认登录地址
    • Javascript删除字符串最后一个字符
    • 一文讲解Linux/UNIX上yum如何安装MySQL
    • 如何修改mysql的默认时区
    • DedeCMS使用sql语句获取文章链接地址
    • vue-cli-service不是内部或外部命令怎么解决
    • laravel与thinkphp之间的区别与优缺点

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有