window.open传参vue获取参数
时间: 2023-05-30 17:07:37 浏览: 1088
可以通过URL参数的方式将参数传递给新打开的窗口,然后在新窗口中通过window.location.search获取URL参数,再用vue的路由或者状态管理器来传递参数。
例如,以下代码将参数id和name传递给新窗口:
```
let id = 1;
let name = 'John';
window.open(`/newPage?id=${id}&name=${name}`);
```
在新窗口中可以通过以下方式获取参数:
```
let params = new URLSearchParams(window.location.search);
let id = params.get('id');
let name = params.get('name');
```
然后可以将参数存储在vue的状态管理器中:
```
this.$store.commit('setId', id);
this.$store.commit('setName', name);
```
或者通过路由传递参数:
```
this.$router.push({ path: '/newPage', query: { id: id, name: name } });
```
然后在新页面中可以通过$route.query来获取参数:
```
let id = this.$route.query.id;
let name = this.$route.query.name;
```
相关问题
vue使用 window.open传参和接受参数
在Vue中使用window.open进行页面跳转并传递参数,可以通过在URL后面拼接参数的方式来实现。例如:
```
const params = {
name: 'John',
age: 30,
gender: 'male'
}
const url = `http://example.com/?${encodeURIComponent(JSON.stringify(params))}`
window.open(url)
```
在新打开的页面中,可以使用以下代码来获取传递过来的参数:
```
const paramsString = window.location.search.substr(1)
const params = JSON.parse(decodeURIComponent(paramsString))
console.log(params.name) // John
console.log(params.age) // 30
console.log(params.gender) // male
```
其中,`window.location.search`返回URL中的查询字符串(即`?`后面的部分),`substr(1)`去掉查询字符串中的`?`,`decodeURIComponent()`解码查询字符串中的特殊字符,最后通过`JSON.parse()`将查询字符串转化为对象。
阅读全文