首页
学习
活动
专区
圈层
工具
发布

今年前端面试太难了,记录一下自己的面试题

也正因为组件是 React 的最小编码单位,所以无论是函数组件还是类组件,在使用方式和最终呈现效果上都是完全一致的。...除了在构造函数中绑定 this,还有其它方式吗你可以使用属性初始值设定项(property initializers)来正确绑定回调,create-react-app 也是默认支持的。...class组件的this指向问题难以记忆的生命周期hooks很好的解决了上述问题,hooks提供了很多方法useState 返回有状态值,以及更新这个状态值的函数useEffect 接受包含命令式,可能有副作用代码的函数...组件通讯: props+回调的⽅式,⽗组件向⼦组件传递props进⾏通讯,此props为作⽤域为⽗组件⾃身的函 数,⼦组件调⽤该函数,将⼦组件想要传递的信息,作为参数,传递到⽗组件的作⽤域中兄弟组件通信...这有助于维护单向数据流,通常用于呈现动态生成的数据。

4.2K30

【单子】说白了不过就是【自函子范畴】上的一个【幺半群】而已?请说人话!!

起初本瓜看到【单子】说白了不过就是【自函子范畴】上的一个【幺半群】而已?这句话的时候,还以为自己在看量子力学的量子纠缠相关内容,单子、函子、粒子、玻色子、费米子、绝绝子。。。...好家伙~ 最后,你告诉我这句话是关于函数式编程 Monad 的解释,牛你是真滴牛!...我们即使不能一直写纯纯的纯函数,不过,尽可能把这些副作用操作放在最后去执行(延迟处理、惰性处理),这也是函数式编程书写纯函数原则之一! 而实现这种做法靠的就是 Monad!...、进行不同线路的变异,最后呈现给消费方; 这个数据的链路越长(多计算)、越多(多分支)、越复杂(多异步),数据的元信息越容易丢失,就像一句话,经过不同人的不同方式转述后,会变得和初始意义相差甚远; 我们试图将计算...撰文不易,点赞鼓励 我是掘金安东尼,公众号同名,输出暴露输入,技术洞见生活,再会!

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    react20道高频面试题答案总结

    也正因为组件是 React 的最小编码单位,所以无论是函数组件还是类组件,在使用方式和最终呈现效果上都是完全一致的。...它是如何使用的状态是 React 组件的核心,是数据的来源,必须尽可能简单。基本上状态是确定组件呈现和行为的对象。与props 不同,它们是可变的,并创建动态和交互式组件。...在构造组件时,通常将 Refs 分配给实例属性,以便可以在整个组件中引用它们。...合成事件是 react 模拟原生 DOM 事件所有能力的一个事件对象,其优点如下:兼容所有浏览器,更好的跨平台;将事件统一存放在一个数组,避免频繁的新增与删除(垃圾回收)。...约束性组件( controlled component)就是由 React控制的组件,也就是说,表单元素的数据存储在组件内部的状态中,表单到底呈现什么由组件决定。

    3.4K10

    自己动手写客户端UI库——创建第一个控件

    PanelMain类 我们在上一篇中说了,PanelMain是一个特殊的Panel,每一个用户程序都应该自己实现一个PanelMain类的子类,用户把这个子类的实例交给WUI库,WUI库把这个实例当作第一个容器控件添加到窗体中...,并使用了他 看起来是不是很方便啊,第二幅图是最终的运行结果 Button类的构造函数 我们在构造函数中把Id属性赋值为Button加一个随机数,随机数主要是为了保证页面中所有的按钮的ID不会重复...类)中的ToHTML方法,这个方法是所有控件必须要实现的方法,一个控件要呈现在用户的眼前,必定需要一段HTML代码,这样浏览器才好呈现这个控件,我们这个方法就是做这个工作的 再次:我们创建的这个DIV的...DEBUG,来保证只有Release状态下,这两行代码才生效 第二: 我们使用System.Environment.CurrentDirectory来获取应用程序的启动目录,以保证用户把工程放在任何位置的时候...-------您的推荐是我写下去的动力>>>>>>>>

    93970

    React--13:引出生命周期

    ---- 这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战 例子: 点击按钮,文字从0变为1,再从1变为0 点击按钮,让组件消失 给按钮加点击事件 卸载组件 API:unmountComponentAtNode...我们将定时函数写到类中发现报错了,注意类中是不可以随便写代码的。类中可以写:构造器、自定义函数、赋值语句、static声明的赋值语句。 所以定时方法不能写在这。我们能放在leave中吗?...都已经return了,下面的代码不执行了,好像也不太合适。所以只能写在render方法中的 return 的顶部。...发现打印次数是指数型式的增长 。 所以定时器放在这里不太合适。 componentDidMount 为什么componentDidMount就不用写成赋值语句加尖头函数的形式呢?...因为componentDidMount是跟render同一级别的,是React创建类的实例对象之后弄出来的。它的this指向是不会丢失的。

    81830

    React Hooks笔记:useState、useEffect和useLayoutEffect

    React Hooks Hook 是 React 16.8 的新增特性,可以让你在函数组件中使用 state 以及其他的 React 特性。 从概念上讲,React 组件一直更像是函数。...useState 返回一个数组,数组包含两个值 第一个值是当前的 state 第二个值是更新 state 的函数 更新状态的函数有两种写法: 参数为非函数值:直接指定新的状态值,内部用其覆盖原来的状态值...setStateName(newValue) 参数为函数:接收原本的状态值,返回新的状态值,内部用其覆盖原来的状态值 setStateName(value => newValue) setStateName...依赖于 DOM 节点的初始化应该放在这里。如需通过网络请求获取数据,此处是实例化请求的好地方。     ...组件卸载前调用,在此做一些收尾工作, 比如清除定时器/取消订阅等     console.log("组件卸载了");     clearInterval(timer);   }; }, []); // 不写

    60730

    WinForm企业应用框架设计【二】团队内部的约定和客户端按约定识别WCF服务

    本系列第一篇发出来之后,与钧梓昊逑讨论了一些问题,现整理出来 一:关于职责问题 客户端的主要职责负责呈现,不宜有过多的业务逻辑 与业务相关的代码和访问数据库相关的代码放在服务器端 与呈现相关的代码放在客户端...  至于哪些代码是与业务相关的,哪些代码是与呈现相关的 呈现的代码是不是包含了业务,业务的代码是不是牵涉到呈现 这属于边界划分的问题,仁者见仁~智者见智~也要根据项目具体问题具体分析 二:关于容错的问题...容错代码服务端和客户端都有 业务上的容错放在服务端,交互上的容错放在客户端 (如果客户端不是自己做的,那么服务端的容错就要全部包含,这不是咱们讨论的范畴) 交互上的容错和业务上的容错是不一样的 服务端认为接收到的数据在格式上都是正确的...:http://localhost/XL.Service/Sys-MenuService   (亲~我修改了上一篇中创建服务的内容~) 静态的构造函数做的主要还是准备工作,CreateClient方法才是真正的创建了服务通道...我们就可以用这个信道实例,完成WCF接口描述的各种行为了 下一节咱们就说客户端框架窗体和动态菜单了~~

    63320

    校招前端经典react面试题(附答案)

    使用context,context相当于一个大容器,可以把要通信的内容放在这个容器中,这样不管嵌套多深,都可以随意取用,对于跨越多层的全局数据可以使用context实现。...source来进行控制,有如下几种情况:[source]参数不传时,则每次都会优先调用上次保存的函数中返回的那个函数,然后再调用外部那个函数;[source]参数传[]时,则外部的函数只会在初始化时调用一次...约束性组件( controlled component)就是由 React控制的组件,也就是说,表单元素的数据存储在组件内部的状态中,表单到底呈现什么由组件决定。...表单如何呈现由表单元素自身决定。如下所示,表单的值并没有存储在组件的状态中,而是存储在表单元素中,当要修改表单数据时,直接输入表单即可。有时也可以获取元素,再手动修改它的值。...类变编译成什么组件指的是页面的一部分,本质就是一个类,最本质就是一个构造函数类编译成构造函数描述 Flux 与 MVC?

    2.3K20

    【React】学习笔记(一)——React入门、面向组件编程、函数柯里化

    类中的构造器不是必须写的,要对实例进行一些初始化的操作,如添加指定属性时才写 如果A类继承了B类,且A类中写了构造器,那么A类构造器中的super是必须要调用的 类中所定义的方法,都放在了类的原型对象上...(){ //render是放在哪里的?...props 类中构造器可写可不写,如果写了构造器constructor必调super函数,而构造中传不传props取决于你需不需要在构造器中通过this访问props,必接必传 数式组件使用 props...在React中,可变状态通常保存在组件的状态属性中,并且只能使用 setState() 进行更新,而呈现表单的React组件也控制着在后续用户输入时该表单中发生的情况,以这种由React控制的输入表单元素而改变其值的方式...4.3、总结 受控组件 受控组件依赖于状态 受控组件的修改会实时映射到状态值上,此时可以对输入的内容进行校验 受控组件只有继承React.Component才会有状态 受控组件必须要在表单上使用

    5.3K30

    对于React Hook的思考探索

    提供的几种编写组件的方式中,我最喜欢函数组件,代码更加简洁,没有什么花里胡哨的新概念,而且可以让我避免跟this打交道。...我将展示给大家看,分别用类的方式跟Hook的方式来实现一个组件,进一步展示Hook带来的便利。...类的方式 采用类去实现组件,我们要在构造器中去定义状态,而且需要修改this去做事件处理,代码如下: import React from 'react' class MyName extends React.Component...而且函数的形式让编译器更容易去分析优化代码,移除无用的代码块,使生成的文件更小。 香不香?...看到这儿的同学可能已经跃跃欲试了,可能有同学会问道,既然Hook能大大地简化代码结构,让代码更加可维护,我们是不是该把所有的组件都用Hook来重写呢?当然不—Hook是可选的。

    1.4K10

    【译】3条简单的React状态管理规则

    React组件内部的状态是在渲染之间保持不变的封装数据。useState()是React钩子,负责管理功能组件内部的状态。 我喜欢useState()确实使状态处理变得非常容易。...但是我经常遇到类似的问题: 我应该将组件的状态划分为小状态,还是保持复合状态? 如果状态管理变得复杂,我应该从组件中提取它吗?怎么做?...让我们来看一个复合状态的例子,即一个包含多个状态值的状态。...这是一个需要调用的大型构造来简单地增加一个计数器:因为一个状态变量负责两个关注点:开关和计数器。...因此,由于组件应该只关心要呈现的元素和要附加的一些事件侦听器,所以应该将复杂的状态逻辑提取到自定义Hook中。 让我们考虑一个管理产品列表的组件。用户可以添加新的产品名称。约束是产品名称必须唯一。

    2.2K40

    Hooks的常用Api

    Effect Hook 可以让你在函数组件中执行副作用操作(用于模拟类组件中的生命周期钩子) 2. React中副作用操作: (1). 发ajax请求数据获取 (2)....useState()说明: 参数:第一次初始值指定的值在内部作缓存 返回值:包含2个元素的数组,第一个为内部当前状态值,第2个为更新状态值的函数 setXxx()2种写法: setXxx(newValue...):参数为非函数值,直接指定新的状态值,内部用其覆盖原来的状态值 setXxx(vlaue=>newValue):参数为函数,接收原本的状态值,返回新的状态值,内部用其覆盖原来的状态值 【补】setXxx...() { console.log('我执行了') const [count, setCount] = React.useState(0); const myRef = React.useRef...() // React.useEffect(() => { // // 数组中不写东西就相当于DidMount // let time = setInterval(() => {

    20810

    React Hooks笔记:useState、useEffect和useLayoutEffect

    React Hooks Hook 是 React 16.8 的新增特性,可以让你在函数组件中使用 state 以及其他的 React 特性。 从概念上讲,React 组件一直更像是函数。...useState 返回一个数组,数组包含两个值 第一个值是当前的 state 第二个值是更新 state 的函数 更新状态的函数有两种写法: 参数为非函数值:直接指定新的状态值,内部用其覆盖原来的状态值...setStateName(newValue) 参数为函数:接收原本的状态值,返回新的状态值,内部用其覆盖原来的状态值 setStateName(value => newValue) setStateName...依赖于 DOM 节点的初始化应该放在这里。如需通过网络请求获取数据,此处是实例化请求的好地方。     ...组件卸载前调用,在此做一些收尾工作, 比如清除定时器/取消订阅等     console.log("组件卸载了");     clearInterval(timer);   }; }, []); // 不写

    3K30

    前端开发常见面试题,有参考答案

    要在整个组件中使用 Refs,需要将 ref 在构造函数中分配给其实例属性:class MyComponent extends React.Component { constructor(props)...可以将数据请求放在这里进行执行,需要传的参数则从componentWillReceiveProps(nextProps)中获取。而不必将所有的请求都放在父组件中。...主要解决的问题: 单纯的Redux只是一个状态机,是没有UI呈现的,react- redux作用是将Redux的状态机和React的UI呈现绑定在一起,当你dispatch action改变state的时候...这样的好处是,可以将数据请求放在这里进行执行,需要传的参数则从componentWillReceiveProps(nextProps)中获取。而不必将所有的请求都放在父组件中。...尽管不建议在app中使用context,但是独有组件而言,由于影响范围小于app,如果可以做到高内聚,不破坏组件树之间的依赖关系,可以考虑使用context对于组件之间的数据通信或者状态管理,有效使用props

    1.5K20

    字节前端二面react面试题(边面边更)_2023-03-13

    这样的好处是,可以将数据请求放在这里进行执行,需要传的参数则从componentWillReceiveProps(nextProps)中获取。而不必将所有的请求都放在父组件中。...组件的构造函数有什么作用?...构造函数主要用于两个目的:通过将对象分配给this.state来初始化本地状态将事件处理程序方法绑定到实例上所以,当在React class中需要设置state的初始值或者绑定事件时,需要加上构造函数,...合成事件是 react 模拟原生 DOM 事件所有能力的一个事件对象,其优点如下:兼容所有浏览器,更好的跨平台;将事件统一存放在一个数组,避免频繁的新增与删除(垃圾回收)。...4)监听数据变化的实现原理不同Vue 通过 getter/setter 以及一些函数的劫持,能精确知道数据变化,不需要特别的优化就能达到很好的性能React 默认是通过比较引用的方式进行的,如果不优化(

    1.9K10

    React Hooks 学习笔记 | State Hook(一)

    接下来,给自己一点时间,去理解上述的代码,我们在构造函数里,使用 this 的方式声明了 name 状态,并将一个 handleNameChange 函数绑定到组件实例中。...: 整个类构造函数已被 useState Hook 替换,它只包含一行。...我们可以通过函数的方式在 setCount 进行更改状态的值,通过参数的形式获取当前状态的值,然后在此基础上进行更改,但是直接更改状态值或通过函数的形式更改状态值,有何不同呢?...从上图所示,如果你使用的是函数方式的初始化状态值,每次更改状态值,只打印一次。 如果是 Object 的状态值,我们只想更改个别属性的值,为了避免出错,我们该怎么做呢?...,通过子组件向父组件传值的形式,将当前用户操作更改的状态值传递给父组件 Ingredients,说了这么多,还是看看代码吧,示例代码如下: import React, {useState} from'react

    1.7K30

    从源码理解 React Hook 是如何工作的

    大家好,我是前端西瓜哥。 今天我们从源码来理解 React Hook 是如何工作的。 React Hook 是 React 16.8 后新加入的黑魔法,让我们可以 在函数组件内保存内部状态。...Hook 的优势: 比组件更小粒度的复用,之前复用需要用 Mixin 或 高阶组件(HOC,一个能够返回组件的组件)进行封装,前者依赖关系隐式导致难以维护,后者粒度过大、嵌套过深; 将处理同一个逻辑的业务代码放在一起...它是一个链表,保存调用 Hook 生成的 hook 对象,这些对象保存着状态值。...如果顺序不一致了或者数量不一致了,就会导致错误,取出了一个其他 Hook 对应的状态值。 2、React Hooks 为什么必须在函数组件内部执行?...我是前端西瓜哥,欢迎关注我,学习更多知识。 ----

    1.5K20

    React Hooks 分享

    react hooks的诞生是为了解决react开发中遇到的问题,this的指向问题,生命周期,给函数组件扩展功能。...三,React hooks   名称及作用: useState     返回有状态值,以及更新这个状态值的函数 useEffect     接受包含命令式,可能有副作用代码的函数 useContext  ...,第一个为内部当前状态值,第二个为更新状态值的函数 setXxx()两种写法: setXxx(newValue) : 参数为非函数值,直接指定新的状态值,内部用其覆盖原来的状态值 setXxx(...value => newValue): 参数为函数,接受原来的状态值,返回新的状态值,内部用其覆盖原来的状态值 eg: import { Component, useState } from 'react...我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=224k7uaw4hqi

    2.4K30
    领券