盛泽做网站的,甘肃省路桥建设集团网站,甜蜜定制app下载,做本地网站赚钱吗?一、vue-router路由传参问题
1、概念#xff1a; A、vue 路由传参的使用场景一般应用在父路由跳转到子路由时#xff0c;携带参数跳转。 B、传参方式可划分为 params 传参和 query 传参#xff1b; C、而 params 传参又可分为在 url 中显示参数和不显示参数两种方式#x…一、vue-router路由传参问题
1、概念 A、vue 路由传参的使用场景一般应用在父路由跳转到子路由时携带参数跳转。 B、传参方式可划分为 params 传参和 query 传参 C、而 params 传参又可分为在 url 中显示参数和不显示参数两种方式 D、即vue路由传参的三种方式query传参显示参数、params传参显示参数、params传参不显示参数
2、常见场景 A、点击列表详情跳转到详情内页传递id参数获取详情数据。 B、在输入框输入内容后点击搜索跳转到搜索页面并把输入的内容一起带到搜索页面
方式一query传参显示参数
query 传参显示参数可分为 声明式 和 编程式 两种方式 1、声明式 router-link
该方式也是通过 router-link 组件的 to 属性实现不过使用该方式传值的时候需要子路由提前配置好路由别名 name 属性例如
//子路由配置
{path: /child,name: Child,component: Child
}
//父路由组件
router-link :to{name:Child,query:{id:123}}进入Child路由/router-link2、编程式 this.$router.push
使用该方式传值的时候同样需要子路由提前配置好路由别名 name 属性例如
//子路由配置
{path: /child,name: Child,component: Child
}
//父路由编程式传参(一般通过事件触发)
this.$router.push({name:Child,query:{id:123}
})
复制代码接收参数在子路由中可以通过下面代码来获取传递的参数值
this.$route.query
console.log( this.$route.query ) // { id:123 }
console.log( this.$route.query.id ) // 123方式二params传参显示参数
params 传参显示参数又可分为 声明式 和 编程式 两种方式
1、声明式 router-link
该方式是通过 router-link 组件的 to 属性实现该方法的参数可以是一个字符串路径或者一个描述地址的对象。使用该方式传值的时候需要子路由提前配置好参数例如
//子路由配置
{path: /child/:id,component: Child
}
//父路由组件
router-link :to/child/123进入Child路由/router-link2、编程式 this.$router.push
使用该方式传值的时候同样需要子路由提前配置好参数例如
//子路由配置
{path: /child/:id,component: Child
}
//父路由编程式传参(一般通过事件触发)
this.$router.push({path:/child/${id}, // 模板字符串形式
})接收参数在子路由中可以通过下面代码来获取传递的参数值
this.$route.params.id
console.log( this.$route.params ) // { id:123 }
console.log( this.$route.params.id ) // 123方式三params传参不显示参数
params传参不显示参数也可分为 声明式 和 编程式 两种方式与方式一不同的是这里是通过路由的别名 name 进行传值的
1、声明式router-link
该方式也是通过 router-link 组件的 to 属性实现例如
router-link :to{name:Child,params:{id:123}}进入Child路由/router-link2、编程式this.$router.push
使用该方式传值的时候同样需要子路由提前配置好参数不过不能再使用 :/id 来传递参数了因为父路由中已经使用params来携带参数了例如
//子路由配置
{path: /child,name: Child,component: Child
}
//父路由编程式传参(一般通过事件触发)
this.$router.push({name:Child,params:{id:123}
})接收参数在子路由中可以通过下面代码来获取传递的参数值
this.$route.params.id
console.log( this.$route.params ) // { id:123 }
console.log( this.$route.params.id ) // 123二、params传参与query传参区别
1.使用query传参类似于get请求使用params传参类似于post请求。2.query的语法用于path编写的传参地址也可用于name编写的传参地址params的语法必须用于name编写的传参地址3.query传递显示参数刷新页面参数不丢失params传递不显示参数刷新页面参数丢失params相对于query来说较安全一点