91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

react中頁面傳值的方法

發布時間:2020-11-20 09:51:03 來源:億速云 閱讀:165 作者:小新 欄目:web開發

這篇文章給大家分享的是有關react中頁面傳值的方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

react中頁面傳值的方法:1、使用【props.params】方法,代碼為【

react中頁面傳值的方法:

一、props.params

官方例子使用React router定義路由時,我們可以給<Route>指定一個path,然后指定通配符可以攜帶參數到指定的path:

首先定義路由到UserPage頁面:

import { Router,Route,hashHistory} from 'react-router';
class App extends React.Component {
  render() {
    return (
        <Router history={hashHistory}>
            <Route path='/user/:name' component={UserPage}></Route>
        </Router>
    )
  }
}

上面指定參數一個參數name

使用:

import {Link,hashHistory} from 'react-router';

1、Link組件實現跳轉:

<Link to="/user/sam">用戶</Link>

2、history跳轉:

hashHistory.push("/user/sam");

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

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

上面的方法可以傳遞一個或多個值,但是每個值的類型都是字符串,沒法傳遞一個對象,如果傳遞的話可以將json對象轉換為字符串,然后傳遞過去,傳遞過去之后再將json字符串轉換為對象將數據取出來

如:定義路由:

<Route path='/user/:data' component={UserPage}></Route>

使用:

var data = {id:3,name:sam,age:36};
data = JSON.stringify(data);
var path = `/user/${data}`;
<Link to={path}>用戶</Link>
hashHistory.push(path);

獲取數據:

var data = JSON.parse(this.props.params.data);
var {id,name,age} = data;

通過這種方式跳轉到UserPage頁面時只能通過傳遞字符串來傳遞參數,那么是否有其他方法來優雅地直接傳遞對象而不僅僅是字符串呢?

二、query

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

首先定義路由:

<Route path='/user' component={UserPage}></Route>

使用:

var data = {id:3,name:sam,age:36};
var path = {
  pathname:'/user',
  query:data,
}
<Link to={path}>用戶</Link>
hashHistory.push(path);

獲取數據:

var data = this.props.location.query;
var {id,name,age} = data;

query方式可以傳遞任意類型的值,但是頁面的URL也是由query的值拼接的,URL很長,那么有沒有辦法類似于表單post方式傳遞數據使得傳遞的數據不以明文傳輸呢?

三、state

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

首先定義路由:

<Route path='/user' component={UserPage}></Route>

使用:

var data = {id:3,name:sam,age:36};
var path = {
  pathname:'/user',
  state:data,
}
<Link to={path}>用戶</Link>
hashHistory.push(path);

獲取數據:

var data = this.props.location.state;
var {id,name,age} = data;

state方式依然可以傳遞任意類型的數據,而且可以不以明文方式傳輸。

可以在實現后對比地址欄的URL來觀察三種傳值方式URL的區別

感謝各位的閱讀!關于react中頁面傳值的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霍林郭勒市| 平阴县| 区。| 临邑县| 石首市| 建瓯市| 诸暨市| 旌德县| 延川县| 兴业县| 阜宁县| 惠水县| 菏泽市| 淳化县| 阿城市| 天全县| 伊宁市| 肇源县| 淄博市| 营山县| 达日县| 嘉义县| 仙游县| 漠河县| 万荣县| 资讯| 温州市| 新津县| 邛崃市| 思南县| 介休市| 博乐市| 达州市| 靖江市| 天津市| 申扎县| 台山市| 缙云县| 镇雄县| 大石桥市| 临洮县|