暂时未有相关云产品技术能力~
大前端架构师,10年工作经验,简书/掘金思否优质作者,《JavaScript 核心进阶》《React 知命境》作者,目前自由职业
在上一篇文章中已经知道,当调用一个函数时(激活),一个新的执行上下文就会被创建。一个执行上下文的生命周期可以分为两个阶段。 •创建阶段 在这个阶段中,执行上下文会分别创建变量对象,建立作用域链,以及确定this指向。 •代码执行阶段 创建完成之后,就会开始执行代码,会完成变量赋值,函数引用,以及执行其他代码。
在实践中,我们常常会遇到逻辑相同的功能片段。对于这样的场景,更省力的方式是,将这些功能片段封装成为一个单独函数来使用。 例如,比较两个数组是否相等,可以封装一个equal方法,来处理这个通用逻辑。 假设我们想要实现如下功能:比较左右两侧的数组是否相同。中间红色字为实时比较结果。每个数组都提供两个操作数组的按钮,点击一下,分别往原数组中添加数字1或者数字2 。
在function组件中,每当DOM完成一次渲染,都会有对应的副作用执行,useEffect用于提供自定义的执行内容,它的第一个参数(作为函数传入)就是自定义的执行内容。为了避免反复执行,传入第二个参数(由监听值组成的数组)作为比较(浅比较)变化的依赖,比较之后值都保持不变时,副作用逻辑就不再执行。 如果读懂了,顺手给我点个赞,然后那么这篇文章到这里就可以完结了。
我们可以在父组件中定义state,并通过props的方式传递到子组件。如果子组件想要修改父组件传递而来的状态,则只能给父组件发送消息,由父组件改变,再重新传递给子组件。 在React中,state与props的改变,都会引发组件重新渲染。如果是父组件的变化,则父组件下所有子组件都会重新渲染。
曾经我去找工作面试的时候,我最讨厌别人问我闭包,因为我说不清楚。现在我面试别人了,却又最爱问闭包,因为闭包真的能直接的检验你对JS的理解深度。可能够回答上来的人真的很少。 两年以来我面试过估计200多人,其中技术能力最强的是阿里P6的一个胖胖的哥们儿,这里简称PP。PP的JS基础很扎实,对React的理解比较深刻,其他问题上我们聊得很开心。可即使是这样的高手,在闭包的问题上也有些犯难,没有第一时间回答出来我想要的答案。
过去大半年里,我将React Hooks应用到了许多大型项目,其中5个全新重构,其他项目由于时间关系少量使用。 这些项目包括 •React Native•基于ant-design-pro重构的中后台应用•基于React,专注于小程序开发的Taro应用•以create-react-app为基础,自主构建的web应用•基于beidou框架的改造的同构应用等
现在是2019年11月2日,从刚开始写这系列文章到现在已经过去两年多时间了。两年以来,阅读过这系列文章的朋友远超我的想象。在简书这样一个鲜为人知的平台上,阅读量超过10W+。技术文章能够有这样的热度,非常非常难,因此内心很有成就感,每当看到大家留言对这系列文章的肯定与鼓励,心中都非常开心。 偶尔有朋友留言建议我说,这系列文章可以出书。其实两年以前就出了。