2024年最新React 基础篇(七)—— Context,2024年最新Web前端大厂面试真题解析大全

最后

其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)

《前端开发四大模块核心知识笔记》

最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

// 使用一个 Provider 来将当前的 theme 传递给以下的组件树。

// 无论多深,任何组件都能读取这个值。

// 在这个例子中,我们将 “dark” 作为当前的值传递下去。

return (

<ThemeContext.Provider value=“dark”>

</ThemeContext.Provider>

);

}

}

// 中间的组件再也不必指明往下传递 theme 了。

function Toolbar(props) {

return (

);

}

class ThemedButton extends React.Component {

// 指定 contextType 读取当前的 theme context。

// React 会往上找到最近的 theme Provider,然后使用它的值。

// 在这个例子中,当前的 theme 值为 “dark”。

static contextType = ThemeContext;

render() {

return ;

}

}

Context 主要应用场景在于很多不同层级的组件需要访问同样的一些数据。如果只是想避免层层传递一些属性,组件组合会比 context 更好。

相关的API


React.createContext

const MyContext = React.createContext(defaultValue);

创建一个 Context 对象,当 React 渲染一个订阅了这个 Context 对象的组件,这个组件会从组件树中离自身最近的那个匹配的 Provider 中读取到当前的 context 值。只有当组件所处的树中没有匹配到 Provider 时,其 defaultValue 参数才会生效。

Context.Provider

<MyContext.Provider value={/* 某个值 */}>

每个 Context 对象都会返回一个 Provider React 组件,它允许消费组件订阅 context 的变化。Provider 接收一个 value 属性,传递给消费组件,一个 Provider 可以和多个消费组件有对应关系。多个 Provider 也可以嵌套使用,里面的会覆盖外层的数据。

Providervalue 值发生变化时,它内部的所有消费组件都会重新渲染。Provider 及其内部的 consumer 组件都不受制于 shouldComponentUpdate ,因此当 consumer 组件在其祖先退出更新的情况下也能更新。

需要注意的是,新旧值的变化通过 Object.is 一样的算法来完成的。

Class.contextType

class MyClass extends React.Component {

componentDidMount() {

let value = this.context;

/* 在组件挂载完成后,使用 MyContext 组件的值来执行一些有副作用的操作 */

}

componentDidUpdate() {

let value = this.context;

/* … */

}

componentWillUnmount() {

let value = this.context;

/* … */

}

render() {

let value = this.context;

/* 基于 MyContext 组件的值进行渲染 */

}

学习分享,共勉

题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

[外链图片转存中…(img-gcMmxPqA-1715703765525)]

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值