关于函数组件和类组件怎样渲染的问题

来源:14-3 用useState实现state和setState功能

斜杠男人

2021-04-10

http://img.mukewang.com/szimg/6071b57d099c819309310560.jpg

函数组件中

1、传递一个新的值给 setCount,会使用最新的 count 重新渲染 Example 组件,但是修改time的值不会重新渲染组件,这是为什么?

2、class组件和函数组件在state变化后执行过程分别是什么样的?

写回答

1回答

双越

2021-04-11

第一,React 就是这么规定的,它和 Vue 的设计思路不一样,class 组件也是,你得调用 setState 才行,你只修改 state 的属性值不行。React 没有像 vue 一样的响应式机制,你必须 setXxx 手动触发,它就是这样设计的。

第二,class 组件的渲染过程,之前的课程(第 8 章)已经讲过了。函数组件的大概的过程是,重新执行函数,生成新的组件配置,然后进行 diff 、渲染 view 。所以,每次修改 state ,函数组件都会重新执行、返回新内容。

0
1
斜杠男人
非常感谢!
2021-04-11
共1条回复

前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4695 学习 · 1667 问题

查看课程