国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

react 父組件與子組件之間的值傳遞的方法

2024-05-06 16:39:42
字體:
來源:轉載
供稿:網友

概念上,組件是封閉的環境。React中是單向數據流的設計,也就是是說只有父組件傳遞資料給子組件這回事。以正確的技術說明,擁有者組件可以設置被擁有者組件中的數據。

那么子組件要如何與父組件溝通這件事,簡單的來說,是一種迂回的作法,在父組件中設置了一個方法(函數),然后傳遞給子組件的props,子組件在事件觸發時,直接呼叫這個props所設置的方法(函數)。但這中間,有誰(對象)呼叫了函數的設置,也就是this的作用。

父組件到子組件用props設置,子組件到父組件用上面說的方式,這是基本的套路,但它只適用于簡單的組件結構,因為它相當麻煩,而且不靈活。那么如果要作到子組件與子組件要彼此溝通這件事,就不是太容易。當然,我想你已經聽過,復雜的應用需要額外使用flux或redux來解決這問題,這是必經之路。

不過,在思考整體的React應用設計時,要有應用領域狀態,也就是全局狀態的概念。第一是應用領域state(狀態)的,通常會在父組件中,而不是子組件中,子組件有可能很多,位于樹狀結構很深的地方。

例子:

子組件

import React, { Component } from 'react'export default class Item extends Component { constructor(props) {  super(props)  this.state = {   prices: 0  } } handleChange(){  const prices =800;  this.setState({   prices: price  })  //用傳過來的changePrice屬性(props),是個函數,呼叫它把price交給父組件中的函數去處理  this.props.changePrice(price) } render() {  const { prices } = this.state;    return (     <div>       <div onChange={this.handleChange.bind(this)}>       </div>       <p>{prices}</p>     </div>    ) }}

父組件

import React, { Component } from 'react';import Item from './Item'class App extends Component { constructor(props) {  super(props)  this.state = {price: 0} }  //給子組件用來傳price用的方法 changePrice(price){  this.setState({price: price}) } render() {  return (   <div>    <Item changePrice={this.changePrice.bind(this)}/>    <p>{this.state.price}</p>   </div>  ); }}export default App;

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长宁县| 洪洞县| 金华市| 留坝县| 社会| 西青区| 江达县| 安徽省| 秦皇岛市| 西丰县| 聊城市| 治县。| 富蕴县| 湾仔区| 西宁市| 阿鲁科尔沁旗| 余庆县| 成都市| 那坡县| 荣昌县| 绥化市| 卓资县| 永州市| 孟村| 磴口县| 胶南市| 漯河市| 宾阳县| 鹤庆县| 台东县| 珲春市| 三亚市| 巢湖市| 湖口县| 广东省| 汾阳市| 盘锦市| 汉川市| 贵德县| 多伦县| 禄劝|