Day 7 写一下context

useContext

今天来説说useContext,这个东西可以做成破产版的redux ,主要功能是建立一个global的树避免产生一个'Props Hell'

先用一段简单的code

// 我是写了一个空物件,但其实这是预设值,写什麽都可以,当<Provider value={} />
// 没有assign value时会预设使用这个
const SomethingContext = createContext({});

然後接下来,如何丢值到整棵树,就要利用context的provider

<SomethingContext.Provider value={...value} />

有写过redux的人,应该感觉很熟悉齁,对他就是概念很像,透过value的props传递到各个子层,还有一个很重要的点/

如果value的值更改了, 所有的children都会重新re-render

接下来如何取得provider传下来的值

  1. 使用render props
<SomethingContext.Consumer>
	{(value) => {}}
</SomethingContext.Consumer>
  1. 使用useContext
const [value, dispatch] = useContext(SomethingContext);

好用的displayName在debug好用

还有很多好用的 下回待续,待想好一个主题


<<:  [Day-22] R语言 - 分群应用(三) 相异点侦测 ( detect dissimilar point by clustering in R.Studio )

>>:  Day7-TypeScript(TS)基础型别资料Part 2

前端工程学习日记第9天

#使用绝对定位 / 相对定位 设计版型 绝对定位: 相对定位: 如果div div 不想要并排,想要...

Day14. Module & #extend #prepend #include - Ruby 继承 part1

Day14-15 一共会介绍 Ruby的2类、4种继承方式。 在Day2 我们提到 Ruby 为单一...

疫情学习用电脑麦克风

为什麽会议,大家听不到我声音,却能听到我的音乐啊~~~~ 设来设去...到底怎麽回事啊... 答案是...

D14 - 转移资料到TiDB工具介绍(一)

在安装完TiDB之後,想先从现有的MySQL资料库倒一张表的资料来试试。 TiDB提供两种的资料导出...

GitHub Action 实作持续交付 - 常见代理程序架构与部署至 IIS

透过前一篇文章的介绍,读者应该了解现今的云端服务相当方便,许多持续交付的功能已经写成 Action,...