开发公司vue 路由跳转携带参数

一、<> 方式跳转

1. 携带query参数

 <router-link to="/detail?id=001&title=消息001"> 消息001</router-link>

<router-link :to="{

        name: 'detail',

        path: '/detail', 

        query: {

                id: '001',

                title: '消息001'

        }

}"

注:开发公司此种方式不需要动,to开发公司属性对象形式中name和path开发公司二选一即可 。

开发公司此时浏览器地址栏地址为:http://localhost:8080/detail?id=001&title=消息001 

开发公司接收参数为:

$route.query.xxx

2. 携带params参数 

<router-link :to="`/detail/${id}/${title}`"> {{ title }} </router-link> 

<router-link :to="{

        name: 'detail',

        path: '/detail', 

        params: {

                id: '001',

                title: '消息001'

        }

}"

注意:开发公司此种方式需要修改路由配置,且to的对象形式中只能用name匹配路由

{

       name: 'detail',

        path: '/detail/:id/:title'

        component: Detail

此时浏览器地址栏地址为:http://localhost:8080/detail/001/消息001 

接收参数为:

$route.params.xxx

3.将参数转换为props属性

 我们可以通过配置路由时的props属性,将params/query携带的参数,在组件中用props属性来接收,这样用时可以直接使用,就不需要$route.params.xxx/$route.query.xxx的形式了

配置方式:

  1. {
  2. name:'detail',
  3. path:'/detail',
  4. component: Detail,
  5. /**
  6. 方式一,值为对象,对象中的key-value会以props的形式传递给Detail组件,
  7. 但是传递的值都是一样的,不推荐
  8. props: {
  9. id: '123',
  10. title: '消息001',
  11. },
  12. **/
  13. /**
  14. 方式二,值为布尔值,若布尔值为真,就会把该组件收到的所有params参数,以props的形式传式传递给Detail组件, 但之这种方式只适用于params参数
  15. props: true,
  16. **/
  17. /**
  18. 方式三,值为函数,内置传参$route,可以使用结构赋值形式
  19. **/
  20. props({query}){
  21. return {id: query.id, title: query.title}
  22. },

还学到了一种结构再结构的形式

props({ query: { id, title } }) {

        return { id, title }

二、编程方式跳转路由

通过编写代码的方式使路由发生跳转,跳转方式有两种,一种是push,一种是replace,他们都是$router上的函数(存在于原型上)。此时携带参数方式为:

  1. this.$router.push({
  2. name'detail',
  3. params: {
  4. id: xxx,
  5. title: xxx
  6. },
  7. /**
  8. query: {
  9. id: xxx,
  10. title: xxx
  11. }
  12. **/
  13. })
  14. this.$router.replace({
  15. name'detail',
  16. params: {
  17. id: xxx,
  18. title: xxx
  19. },
  20. /**
  21. query: {
  22. id: xxx,
  23. title: xxx
  24. }
  25. **/
  26. })          

注意:不论何种方式跳转,想要在标签中接收到不同的params就需要在路由配置时用/:占位,不然只能接收到第一次打开时带过来的参数。


写在最后:

如果有建议或意见,欢迎评论。如果有小伙伴发现文中存在错误,也欢迎在评论区指出~

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发