uniapp vue3路由传参与接收
时间: 2023-09-28 22:06:30 浏览: 102
在Uniapp中使用Vue 3进行路由传参与接收有以下几个步骤:
1. 在父组件中定义需要传递的参数,并通过v-bind绑定到子组件上。例如,在父组件中定义一个名为parentData的属性,并将其绑定到子组件上:
```html
<Child :parentData="parentData" />
```
2. 在子组件中使用props接收父组件传递的参数。在子组件的props中声明一个名为parentData的属性,并指定其类型和是否必需:
```javascript
props: {
parentData: {
type: Object,
required: true
}
}
```
3. 子组件中可以通过this.parentData来访问父组件传递的数据。
另外,如果需要在不同页面之间进行跨层传参,可以使用全局变量和路由传参的方式:
1. 在main.js中定义一个全局变量,用来存储需要传递的数据。例如,在main.js中添加以下代码:
```javascript
Vue.prototype.$globalData = {
data1: 'data1',
data2: 'data2'
}
```
2. 在需要传递数据的页面(例如pageA)中获取全局变量:
```javascript
const globalData = this.$globalData;
```
3. 在pageA中,通过路由传参的方式将数据传递到另一个页面(例如pageB):
```javascript
this.$router.push({
name: 'pageB',
params: {
data1: globalData.data1,
data2: globalData.data2
}
})
```
4. 在pageB中可以通过this.$route.params来获取传入的参数:
```javascript
const data1 = this.$route.params.data1;
const data2 = this.$route.params.data2;
```
总结一下,使用Vue 3进行Uniapp中的路由传参与接收,需要注意以上几点,并根据实际情况进行开发。
#### 引用[.reference_title]
- *1* [【笔记】uniapp中,用vue3.x如何接收uni路由中的参数](https://blog.csdn.net/windysee/article/details/121572379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [最新的uniapp vue3的语法](https://blog.csdn.net/m0_59029708/article/details/129409797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文