首頁  >  文章  >  web前端  >  react路由傳值有幾種方式

react路由傳值有幾種方式

WBOY
WBOY原創
2022-06-28 15:57:533526瀏覽

react路由傳值有三種方式:1、「props.params」方法,該方法可以傳遞一個或多個值,但是每個值的類型都是字串,沒法傳遞一個物件; 2、query方法,此方法類似表單中的get方法,傳遞參數為明文,但是刷新頁面參數會遺失;3、state方法,該方法取得參數時要用“this.props.match.params.name” ,並且刷新頁面參數也會遺失。

react路由傳值有幾種方式

本教學操作環境:Windows10系統、react17.0.1版、Dell G3電腦。

react路由傳值有幾種方式

路由傳值的方法有三種

1.props.params(建議)

//设置路由
 
    
 
import { Router,Route,Link,hashHistory} from 'react-router';
class App extends React.Component {
  render() {
    return (      
        用户
        // 或者
        hashHistory.push("/user/sam");
    )
  }
}

當頁面跳到UserPage頁面之後,取出傳過來的值:

export default class UserPage extends React.Component{
    constructor(props){
        super(props);
    }
    render(){
        return(
this.props.match.params.name
) } }

上面的方法可以傳遞一個或多個值,但是每個值的類型都是字串,沒法傳遞一個物件,如果傳遞的話可以將json物件轉換為字串,然後傳遞過去,傳遞過去之後再將json字串轉換為物件將資料取出來

//定义路由

//设置参数
var data = {id:3,name:sam,age:36};
data = JSON.stringify(data);
var path = `/user/${data}`;
//传值
用户
//或
hashHistory.push(path);
//获取参数
var data = JSON.parse(this.props.params.data);
var {id,name,age} = data;

#2.query(不推薦:刷新頁面參數遺失)

query方式使用很簡單,類似表單中的get方法,傳遞參數為明文

//定义路由

//设置参数
var data = {id:3,name:sam,age:36};
var path = {
  pathname:'/user',
  query:data,
}
//传值
用户
//或
hashHistory.push(path);
//获取参数
var data = this.props.location.query;
var {id,name,age} = data;

#3.state(不推薦,刷新頁面參數遺失)

state方式類似post方式,使用方式和query類似

//设置路由

//设置参数
var data = {id:3,name:sam,age:36};
var path = {
  pathname:'/user',
  state:data,
}
//传值
用户
//或
hashHistory.push(path);
//获取参数
var data = this.props.location.state;
var {id,name,age} = data;

特別提示:

1,取得參數時要用this.props.match.params.name

2,如果在子元件裡列印要記得傳this.props,如下:

class Todolist extends Component {
    render() {
       return (
           
           
//不传的话this.props为空对象
); } } export default Todolist;

【相關推薦:javascript影片教學web前端

#

以上是react路由傳值有幾種方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn