美文网首页Vue学习
动态路由传参

动态路由传参

作者: 椰果粒 | 来源:发表于2019-02-14 14:50 被阅读6次

为什么有路由组件传参

如果用$route的方法,会导致它与对应的路由有高度的耦合(也就是说,$route的组件传参方法也行,就是与组件的耦合度会高),耦合度高使得组件只能在某些特定的URL上使用,限制了其灵活性。

如何解决$route耦合度高的问题

路由组件传参

路由组件传参能干什么

获取路由参数,在页面中做一些逻辑处理

vue路由组件传参有三种方式:

  • 1、布尔方式
  • 2、对象方式
  • 3、函数方式

1、布尔方式

布尔方式适用于有动态路由参数的情况

举个栗子:

router:
{
  path: '/argu/:name',  // 动态参数
  name: 'argu',         // 命名路由
  component: ()=>import('@/views/Argu.vue'),  // 懒加载组件,用到再加载
  props: true,          // 路由传参,会将name传递过去
}

component:
<template>
  <div>
    <!-- 获取动态参数的方法之一:耦合度高 -->
    {{ $route.params.name }}
    <!-- 获取动态参数的方法之二:耦合度低 -->
    {{ name }}
  </div>
</template>
<script>
export default {
  // 动态路由传参
  props: {
    name: {
      type: [String,Number],
      default: 'xiaoming'
    }
  }

}
</script>

test:
http://localhost:8080/#/argu/aaa

将props设置为true,route.params将会设置为组件属性

2、对象方式

对象方式适合普通路由传参的情况

router:
{
  path: '/about',
  name: 'about',
  component: () => import('@/views/About.vue'),
  // 对象方式传参
  props: {
    food: "apple"
  }
}

component:
{{ food }}
props: {
  food: {
    type: String,
    default: 'babana'
  }
}
</script>

test:
http://localhost:8080/#/about

3、函数方式

创建一个函数,返回props

router:
{
  path: '/',
  name: "home",
  alias: 'home_page',
  component: Home,
  props: route=>({
    food: route.query.food
  })
},

component:
{{ food }}
props: {
  food: {
    type: String,
    default: "orange"
  }
},

test:
http://localhost:8080/#/?food=orr

相关文章

  • Vue 动态路由

    动态路由 动态路由传参

  • Next.js 跳转传参并接收接参

    介绍路由传参,接参使用方法 传参 + 跳转页面接收参数 动态路由传参 + 跳转页面接收参数创建动态路由在pag...

  • Vue实战第二天

    路由组件传参 动态路由传参 静态路由传参 函数传参htm5 history 模式 设置通用路由,找不到页面跳转自定...

  • vue路由的介绍(二)--vue动态路由和get的传值

    vue动态路由和get的传值---->同属于路由的传参 1,vue动态路由: 动态路由的配置: ①,在配置路由时加...

  • vue-router配置笔记

    路由的配置 二、动态路由传参1.配置动态路由 2.在对应的页面 三、get传值

  • react的动态路由

    1. 动态路由传参 建议用这个,刷新不会丢 2 query传参 3. state传参

  • vue全家桶(2.5)

    3.8.动态路由匹配和路由组件传参 #3.8.1.动态路由匹配 动态路由意味着不固定,具有某种模式,我们希望通过某...

  • 动态路由

    路由动态传参 方法一 步骤1:在进行传参 分析:格式是定义一个对象,传路由的名称name...

  • 路由传参的三种方式

    一、通过进行传参 然后在要跳转的吧也面去取id 动态路由传参配置路由 二、通过组件配置 需...

  • 动态路由传参

    为什么有路由组件传参 如果用$route的方法,会导致它与对应的路由有高度的耦合(也就是说,$route的组件传参...

网友评论

    本文标题:动态路由传参

    本文链接:https://www.haomeiwen.com/subject/uneeeqtx.html