日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
React 數(shù)據(jù)流管理:組件之間數(shù)據(jù)是如何傳遞的?

本文轉(zhuǎn)載自微信公眾號「勾勾的前端世界」,作者西嶺 。轉(zhuǎn)載本文請聯(lián)系勾勾的前端世界公眾號。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比二道網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式二道網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋二道地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

截至到目前,我們已經(jīng)掌握了組件的概念、組件的傳值、以及組件狀態(tài)的相關(guān)內(nèi)容。有興趣的寶子可以翻看俺之前發(fā)布的內(nèi)容,筆芯。

你應(yīng)該發(fā)現(xiàn)了,我們學(xué)習(xí) React ,除了環(huán)境搭建和不多的 JSX 語法外,極大的篇幅都在學(xué)習(xí) React 中的數(shù)據(jù)流管理。

但是,我們在前面學(xué)習(xí)組件傳值時,一直都是將值從父級組件傳入子級組件中,從來沒有將子級組件的值傳入到父級組件,也沒有在多個兄弟組件間傳值。

而根據(jù)單向數(shù)據(jù)流的內(nèi)容推測,我們也不敢確定數(shù)據(jù)是否可以從子組件傳入父級組件。

為什么沒有在之前就說呢?因為我們的基礎(chǔ)知識掌握的還不夠,現(xiàn)在學(xué)完組件狀態(tài),就可以了,那到底應(yīng)該怎么做呢?

組件數(shù)據(jù)傳遞

子組件向父組件傳值

我們先來看子級組件如何向父級組件傳遞數(shù)據(jù):其本質(zhì)上就是使用回調(diào)函數(shù)。

具體怎么做呢?

父級組件引入子級組件后,在 JSX 中依然使用 Props 的方式,將提前寫好的父級組件的函數(shù),傳入子級組件,在子級組件中使用 this.props 接收傳入的函數(shù)并調(diào)用,在函數(shù)的調(diào)用中,將需要出入父級組件的值,傳入函數(shù)調(diào)用的實參。

父組件:

 
 
 
 
  1. import React, { Component } from 'react' 
  2. import States from './States' 
  3.  
  4. export class App extends Component { 
  5.   state = { 
  6.     name:'lisi' 
  7.   } 
  8.  
  9.   callBack = (req)=>{ 
  10.     this.setState({name:req}) 
  11.   } 
  12.  
  13.   render() { 
  14.     return ( 
  15.       
     
  16.         

    APP

     
  17.         

    {this.state.name}

     
  18.         {/* 將父級組件中的函數(shù),以 Props 的方式傳入子級組件 */} 
  19.         {/* 子級組件調(diào)用函數(shù),以回調(diào)函數(shù)的方式將子組件的值傳回給父級組件 */} 
  20.          
  21.       
 
  •     ) 
  •   } 
  •  
  • export default App 
  • 子組件:

     
     
     
     
    1. import React, { Component } from 'react' 
    2.  
    3. export class States extends Component { 
    4.   render() { 
    5.     return ( 
    6.       
       
    7.         {/* 子組件使用 Props 接收父級組件傳入的函數(shù)并調(diào)用 */} 
    8.         {/* 將需要傳入父級組件的值,以實參的方式傳入到函數(shù)調(diào)用 */} 
    9.         {this.props.fun('xliling')}}>點我 
    10.       
     
  •     ) 
  •   } 
  •  
  • export default States 
  • 父級組件向子級組件通信,我們使用的是 Props 屬性,子級組件向父級組件通信則是結(jié)合了 Props 和回調(diào)函數(shù)進(jìn)行實現(xiàn)的,集合這兩點,我們就可以實現(xiàn)兄弟組件的通信了。

    兄弟組件通信

    兄弟組件的通信原理其實也很簡單,就是使用回調(diào)函數(shù)的方式,先將數(shù)據(jù)傳入父級組件,再由父級組件使用 Props 的方式將數(shù)據(jù)傳入子級組件,如下圖所示:

    而具體代碼的實現(xiàn),并沒有什么新的知識點內(nèi)容,無非就是兩者結(jié)合一下而已:

    我們在父級組件中,引入子級組件的內(nèi)容,然后將函數(shù)傳入數(shù)據(jù)來源的子級組件,同樣使用 Props 再將數(shù)據(jù)傳入另一個組件中。

    父級組件的代碼如下:

     
     
     
     
    1. import React, { Component } from 'react' 
    2.  
    3. import States from './States' 
    4. import Brother from './Brother' 
    5.  
    6. export class App extends Component { 
    7.   state = { 
    8.     name:'lisi' 
    9.   } 
    10.  
    11.   callBack = (req)=>{ 
    12.     this.setState({name:req}) 
    13.   } 
    14.  
    15.   render() { 
    16.     return ( 
    17.       
       
    18.         

      APP

       
    19.         

      {this.state.name}

       
    20.          
    21.          
    22.       
     
  •     ) 
  •   } 
  •  
  • export default App 
  • 接著我們看數(shù)據(jù)來源組件中,通過 Props 獲取回調(diào)函數(shù),調(diào)用并傳入數(shù)據(jù):

     
     
     
     
    1. import React, { Component } from 'react' 
    2.  
    3. export class States extends Component { 
    4.   render() { 
    5.     return ( 
    6.       
       
    7.         {this.props.fun('xliling')}}>點我 
    8.       
     
  •     ) 
  •   } 
  •  
  • export default States 
  • 然后再接收數(shù)據(jù)的子組件中,獲取數(shù)據(jù):

     
     
     
     
    1. import React, { Component } from 'react' 
    2.  
    3. export class Brother extends Component { 
    4.   render() { 
    5.     return ( 
    6.       
       
    7.         

      Brother 

       
    8.         

      {this.props.fromApp}

       
    9.       
     
  •     ) 
  •   } 
  •  
  • export default Brother 
  • 總結(jié)

    子組件向父級組件傳值就是簡單的回調(diào)函數(shù),并沒有復(fù)雜的手法。,而利用回調(diào)函數(shù)和 Props 也可以輕松的實現(xiàn)兄弟組件間的數(shù)據(jù)傳遞,至此,我們利用 Props 完成了對 React 數(shù)據(jù)流管理的所有內(nèi)容的學(xué)習(xí)。

    而之前提到的關(guān)于 JSX 交互部分,用戶的頁面操作,都是由表單承接的。那么接下來的表單的處理就是重點了,下周再更,嘻嘻(●'?'●)


    分享題目:React 數(shù)據(jù)流管理:組件之間數(shù)據(jù)是如何傳遞的?
    URL標(biāo)題:http://m.5511xx.com/article/dhocgij.html