希望学一面

186 阅读2分钟

1.为什么react是声明式的

  • 说到声明式编程,就要说到命令式编程。命令式编程注重过程,开发者需要告诉程序每步要怎么做,声明式编程注重结果,直接告诉程序要什么
  • 声明式编程更加简洁便利,好维护

2.react强调的数据不可变是指什么

  • 简化复杂的功能

不可变性使得复杂的特性更容易实现。

  • 跟踪数据的改变

如果直接修改数据,那么就很难跟踪到数据的改变。跟踪数据的改变需要可变对象可以与改变之前的版本进行对比,这样整个对象树都需要被遍历一次。

跟踪不可变数据的变化相对来说就容易多了。如果发现对象变成了一个新对象,那么我们就可以说对象发生改变了。

  • 确定在 React 中何时重新渲染

不可变性最主要的优势在于它可以帮助我们在 React 中创建 pure components。我们可以很轻松的确定不可变数据是否发生了改变,从而确定何时对组件进行重新渲染 www.jb51.net/article/209…

3.class和hook的区别,以及为什么要用hook

  • 首先hook的写法比class更加简练,其次也不需要去维护this
  • hook的代码更加紧凑,例如在类组件里挂载声明一个timer,卸载时清除它就需要用到两个生命周期函数。但是在函数式组件里只需要useEffect就可以了
  • hook可以更加方便的复用组件 juejin.cn/post/684490…

4.口述new是怎么实现的

  • 创建一个新的obj
  • 将obj的__proto__指向接受的变量的prototype
  • 将构造函数(接受的变量)的this指向obj
  • 返回obj

5.url输入浏览器后发生了什么

6.盒模型是什么

7.flex布局以及flex:1是什么意思

8.ts会吗

9.正则表达式会吗