路由跳转
1.window.location跳转和window.open跳转
a.跳转
a.在当前页面跳转
window.location = “/xxx/xxx/xxx?a=” + 参数1 + “&b=” + 参数2
b.打开另一个新页面跳转
window.open("/xxx/xxx/xxx")
注意:
1>
window.location是页面的位置对象,而window.location.href是location的一个属性,并且是默认属性,也就是说直接给window.location赋值其实就是修改window.location.href的属性值,所以:
window.location = “https://www.baidu.com/” 等价于 window.location.href = “https://www.baidu.com/”
2>
window.location和window.open都可以加网址实现跳转或者直接加路由路径实现跳转。
b.从url地址栏取参数
const url = location.search;
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
let strs = str.split("&");
for (var i in strs) {
theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
}
}
console.log(theRequest)
2.RouterRedux跳转(dva框架)
组件A
import React, { Component } from "react";
import { routerRedux } from “dva/router”;
export default class 组件A extends Component {
render() {
return(
<div>
<button
onClick={() => {
let { dispatch } = this.props;
dispatch(routerRedux.push({
pathname: "/componentTwo",
state: {
type: "componentOne",
data: value
}
}))
}}
>AAA<butotn>
</div>
)
}
}
组件B
import React, { Component } from "react";
export default class 组件B extends Component {
componentDidMount() {
let { location } = this.props;
let query = location.state;
console.log(state); // value
}
render() {
return(
<div></div>
)
}
}