首页 > 其他 > 详细

路由组件传参,将参数解耦

时间:2021-06-01 16:58:00      阅读:61      评论:0      收藏:0      [点我收藏+]

路由组件传参解耦方式:

一、布尔模式:只在params传参下有效

  {
    path: /orderDetail/:id,
    name: orderdetail,
    component: () => import(../components/orderDetail.vue),
    meta: { showTabbar: false},
    props:true
  }

// 传参
gotoDetail(){
        this.$router.push({name:`orderdetail`,params:{id:this.id}})
      }

// 参数接收
props: [id],
mounted(){
      console.log(this.id,id)
    },

二、对象模式:props是静态时比较有用

  {
    path: /orderDetail/:id,
    name: orderdetail,
    component: () => import(../components/orderDetail.vue),
    meta: { showTabbar: false},
    props:{newsletterPopup:false}  // 设置静态的props,实际项目中动态props比较多
  }

//orderDetail中参数接收
props: {
      newsletterPopup: {
        type: Boolean,
        default: false
      }
    },

mounted(){
      console.log(this.newsletterPopup,pop)
    },

三、函数模式:创建一个函数返回props,将路由传的值与静态的props值结合;对params和query传参均可

  {
    path: /orderDetail,
    name: orderdetail,
    component: () => import(../components/orderDetail.vue),
    meta: { showTabbar: false},
    props:route =>
      ({
        newsletterPopup:false,   // 将静态的值和动态的值都进行props解耦
        query:route.query.id
      })
    
  }

// 传参
gotoDetail(){
        this.$router.push({path:`/orderDetail`,query:{id:this.id}})
      }

// 参数接收
props: {
      newsletterPopup: {
        type: Boolean,
        default: false
      },
      query:{
        type: String,
        default: ‘‘
      }
    },
mounted(){
      console.log(this.newsletterPopup,---,this.query,pop)
    },

 

路由组件传参,将参数解耦

原文:https://www.cnblogs.com/lita07/p/14837412.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!