快捷搜索:  汽车  科技

vue组件之间传值方式(Vue组件之间传参的方法汇总)

vue组件之间传值方式(Vue组件之间传参的方法汇总)this.$route.params.id 方案三:query参数传递类似get{ path: '/details' //相比第一种,少了路径参数 name: 'Details' component: Details } 在子组件中获取传递的参数值(跟第一种方案一样获取){ path: '/details/:id' //动态参数映射上面的${id} name: 'Details' component: Details } 在子组件中获取传递的参数值this.$route.params.id 方案二: params传参类似post this.$router.push({ name: 'Details' //注:name引用的是路由上的name,就是传递给那个路由的一个标识 params: { id: id } }) 路由配置如下:

vue组件之间传值方式(Vue组件之间传参的方法汇总)(1)

现有如下场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取数据。

父组件中:

<li v-for="item in list" @click="translateArguments(item.id)">

方案一:路由配置动态路径参数

methods: translateArguments(id) { this.$router.push({ path: `/details/${id}` })

路由配置如下:

{ path: '/details/:id' //动态参数映射上面的${id} name: 'Details' component: Details }

在子组件中获取传递的参数值

this.$route.params.id

方案二: params传参类似post

this.$router.push({ name: 'Details' //注:name引用的是路由上的name,就是传递给那个路由的一个标识 params: { id: id } })

路由配置如下:

{ path: '/details' //相比第一种,少了路径参数 name: 'Details' component: Details }

在子组件中获取传递的参数值(跟第一种方案一样获取)

this.$route.params.id

方案三:query参数传递类似get

父组件:使用path来匹配路由,然后通过query来传递参数 这种情况下 query传递的参数会显示在url后面?id=?

this.$router.push({ path: '/details' query: { id: id } })

路由配置如下(跟第二种方案一样):

{ path: '/details' name: 'Details' component: Details }

在子组件中获取传递的参数值

this.$route.query.id

$router $route的区别

在控制台打出this的时候,比较一下$route和$router

vue组件之间传值方式(Vue组件之间传参的方法汇总)(2)

$route和$router

  • $route为当前router跳转对象里面可以获取name、path、query、params...
  • $router为VueRouter实例,想要导航到不同URL,则使用$router.push方法,返回上一个history也是使用$router.go方法

猜您喜欢: