React之Context跨級元件傳值

2021-10-05 04:16:44 字數 2129 閱讀 6841

例如:react-redux 的原理就是利用了跨級傳參的方法實現的,其中的好處不言而喻!!!

在單純的父子傳參中this.props就可以了。子傳父也是通過呼叫父元件的方法去改變引數變化,假如在企業專案中不

只是單純的父子傳參,還有爺爺元件和孫子元件或者重孫玄孫甚至可能...玄玄玄孫等等,就好比自己的親戚的七大姑八

大姨一樣錯綜複雜,所以這時候react提供了乙個非常簡便和實用的東西 --------- 元件跨級傳值

第一步在src資料夾下建立utils資料夾並建立context.js檔案,以及其他元件

在context檔案下書寫一下**(用來建立context)

import react from

'react'

//建立context物件

var context = react.

createcontext()

;//匯出

export

default context;

class

extends

component;}

render()

>

<

/list>

<

/context.provider>

<

/div>)}

}export

在list檔案裡書寫父親元件list 並在爺爺元件中引入 孫子元件item

import react,

from

'react'

import item from

'./item'

export

default

class

list

extends

component

}

孫元件item

import react,

from

'react'

import context from

'../utils/context'

export

default

class

item

extends

component

<

/h2>);

}}<

/context.consumer>

<

/div>)}

}

孫元件進行資料的展示和渲染

import react,

from

'react'

import context from

'../utils/context'

export

default

class

btnextends

component

<

/h2>);

}}<

/context.consumer>

<

/div>

)}

這樣就是實現了跨級傳參

建立context物件

var context = react.createcontext();

傳值的元件,利用 provider 元件傳值,值通過value屬性指定;

注意: 須將需要接收值的元件包裹在provider內,這樣所有內層元件都可以接收到這個value值,通俗的講就是資料的入口。

接收值的元件,利用consumer 元件接收值,內部是個函式

React之 Context跨級元件傳值

在乙個典型的react專案中,資料是通過props屬性自上而下的 由父及子 進行傳遞,但是這種做法對於某些型別的屬性而言是極其繁瑣的 例如 地區偏好,ui主題 這些屬性是應用程式中許多元件都需要的。context提供了一種在元件之間共享此類值的方式,而不必顯示地通過元件樹的逐層傳遞props 第一步...

react元件跨層級通訊context

react 中使 context 實現祖代元件向後代元件跨層級傳值。vue中的 provide inject 於context context api react.createcontext 建立 個 context 物件。當 react 渲染 個訂閱了這個context 物件的元件,這個元件會從元...

React高階指引 Context

context 提供了一種在元件之間共享此類值的方式,而不必顯式地通過元件樹的逐層傳遞 props。context 設計目的是為了共享那些對於乙個元件樹而言是 全域性 的資料,例如當前認證的使用者 主題或首選語言。舉個例子,在下面的 中,我們通過乙個 theme 屬性手動調整乙個按鈕元件的樣式 使用...