例如: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 屬性手動調整乙個按鈕元件的樣式 使用...