希赛考试网
首页 > 软考 > 网络工程师

vue动态路由传参

希赛网 2024-06-02 11:23:03

Vue是一种现代的、高效的、流行的前端开发框架,它尤其擅长构建单页应用。在Vue中,通过路由可以实现单页应用中不同页面的切换。随着单页应用的复杂度增加,需要为路由传递参数,以便在不同页面之间传递数据。这里我们主要讨论Vue中动态路由传参的方式。

1. 路由传参基础

在Vue中,通过路由传递参数可以使用两种方式:query和params。query传递参数是通过URL的?后面加参数的方式,例如:

```

router.push({ path: '/path', query: { key: value }})

```

在目标组件中使用this.$route.query即可获取参数。params传递参数是通过路由路径中的:参数名来传递,例如:

```

router.push({ path: '/path/:id', params: { id: 123 }})

```

在目标组件中使用this.$route.params即可获取参数。

2. 动态路由传参

静态路由是指事先定义好的路由路径,例如:

```

const routes = [

{

path: '/user/:id',

component: User

}

]

```

这里的/user/:id是静态路由,:id是参数。

动态路由是指在代码中添加新路由的方式。例如:

```

const router = new VueRouter()

router.addRoutes([{

path: '/user/:id',

component: User

}])

```

这里的/user/:id是动态路由。接下来我们就讨论动态路由传参的方式。

3. 在params中传递参数

在动态路由中,将参数传递给params很简单。例如:

```

router.addRoutes([{

path: '/user/:id',

component: User

}])

router.push({ path: `/user/${id}`, params: { key: value }})

```

在目标组件中将可以获取id和key对应的value值。使用params传递参数的好处是传递参数更安全,因为参数被编码在URL中,不容易被窃取。

4. 在query中传递参数

使用query传递参数也是在动态路由中常见的方式。例如:

```

router.addRoutes([{

path: '/user/:id',

component: User

}])

router.push({ path: `/user/${id}`, query: { key: value }})

```

在目标组件中将可以获取id和key对应的value值。相对于params传递方式,query传递方式的好处是传递参数更简单,不需要在路由定义中定义参数。但也需要注意,query传递参数的方式不如params安全。

5. 使用函数返回动态路由

有时我们需要根据一些条件生成新的路由,这时可以使用函数返回动态路由。例如:

```

function createRoute (id) {

return {

path: `/user/${id}`,

component: User

}

}

router.addRoutes([createRoute(id)])

```

这里的createRoute函数接受一个id参数,返回一个路由对象。使用函数返回动态路由的好处是可以更灵活地创建新路由。

6. 总结

Vue动态路由传参有两种方式:使用params和使用query。使用params传递方式传递的参数安全性更高,但需要在路由定义中定义参数;使用query传递方式传递的参数更加简便,但相对不如params安全。使用函数返回动态路由的方式可以更灵活地创建新路由。

扫码咨询 领取资料


软考.png


网络工程师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
网络工程师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考资格查询系统

扫一扫,自助查询报考条件