context 提供了乙個無需為每層元件手動新增 props,就能在元件樹間進行資料傳遞的方法。
在乙個典型的 react 應用中,資料是通過 props 屬性自上而下(由父及子)進行傳遞的,但這種做法對於某些型別的屬性而言是極其繁瑣的(例如:地區偏好,ui 主題),這些屬性是應用程式中許多元件都需要的。context 提供了一種在元件之間共享此類值的方式,而不必顯式地通過元件樹的逐層傳遞 props。
簡單的說,就是在元件定義context,元件內的內部元件 子孫所有元件都可以訪問這個資料
import react,
from
'react'
import children from
'./children'
export
const
= react.
createcontext()
;export
default
class
father
extends
component
this
.child =
null
}setname()
)}render()
<
/p>
<
/p>
>
context值:
<
/p>
>修改name值<
/button>
<
/children>
<
/provider>
<
/div>)}
}
import react,
from
'react'
import grandson from
'./grandson'
import
from
"./father"
;//引入consumer容器的元件
export
default
class
children
extends
component
}render()
<
/p>
}<
/consumer>
>
<
/div>)}
}
import react,
from
'react'
import
from
"./father"
;//引入consumer容器的元件
export
default
class
grandson
extends
component
}render()
<
/p>
}<
/consumer>
<
/div>)}
}
import react,
from
'react'
import children from
'./children'
const conditionrender = react.
lazy((
)=>
import
('./conditionrender'))
export
const themecontext = react.
createcontext()
;export
const usercontext = react.
createcontext()
;export
default
class
extends component
, theme:
'dark'}}
render()
<
/p>
<
/p>
>
>
context值:
<
/p>
onref=
}>
<
/children>
<
/usercontext.provider>
<
/themecontext.provider>
<
/div>)}
}
import react,
from
'react'
import grandson from
'./grandson'
import
from
"./father"
;//引入父元件的consumer容器
export
default
class
children
extends
component
}render()
<
/p>)}
<
/themecontext.consumer>
<
/p>
<
/div>
}<
/usercontext.consumer>
>
<
/div>)}
}
import react,
from
'react'
import
from
"./father"
;//引入父元件的consumer容器
export
default
class
grandson
extends
component
}render()
<
/p>)}
<
/themecontext.consumer>
<
/p>
<
/div>
}<
/usercontext.consumer>
<
/div>)}
}
React Context 理解和使用
如果發現文章有問題也可以在文章下方及時聯絡筆者哦,相互 一起進步 const context react.createcontext defaultvalue function contextprovider 但是如果沒有對應的context.provider相匹配,那麼元件樹上的所有元件都可以收到...
react context上下文的使用
react 中,資料是通過 props 屬性自上而下 由父及子 進行傳遞的,但這種做法對於某些型別的屬性而言是極其繁瑣的。context 設計目的是為了共享那些對於乙個元件樹而言是 全域性 的資料。context 可以讓我們無須明確地傳遍每乙個元件,就能將值深入傳遞進元件樹。為當前的 theme 建...
react context上下文使用
首先介紹下什麼是上下文以及為什麼要使用上下文,react狀態一般情況是由父元件通過props向子元件傳遞的,那麼如果出現巢狀比較深的元件,並且只是最後乙個子元件需要使用頂層元件的狀態這樣一級級傳遞會顯得麻煩而且不好維護,上下文的作用是在當前元件宣告乙個公共的狀態,不需要通過props的傳遞,子元件需...