reactjs - React Hooks 之后的 render() 发生了什么?
问题描述
在 Hooks 之前,我们使用了很多基于类的方法render()
,它确实如前所述,将之前的 DOM 与当前的 DOM 进行比较,如果它们不同,React 将重新渲染组件。
但是现在,使用 React Hooks,通常我们只使用return()
返回和渲染,我是对的吗?
和Hooks 之前return()
做的一样吗?render()
如果不是,有什么区别?
解决方案
return()
并且render()
完全一样。如果将组件编写为函数,则使用return()
.
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
如果将组件编写为类,则使用render()
.
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
但是,在过去,您在功能组件中没有状态/生命周期方法。为了解决这个问题,React 引入了 Hooks。过去你必须在构造函数中定义状态,现在你在这样的函数中定义它:
function ExampleWithManyStates() {
const [age, setAge] = useState(42);
const [fruit, setFruit] = useState('banana');
const [todos, setTodos] = useState([{ text: 'Learn Hooks' }]);
}
此外,您可以使用本文中提到的带有钩子的生命周期方法
推荐阅读
- c# - 有没有办法使用 c# 从 Minecraft 统一重新创建班次系统
- python - pandas/scikit 学习组合列
- javascript - 有没有办法合并反应表中的多个列
- jquery - 如何通过 AJAX 在点击变体的 shopify 迷你购物车弹出窗口中附加产品行项目?
- javascript - 如何在 create-react-app 中动态导入图像
- css - 如何使用带有 svg 标签的 svg 图像
- php - 使用 mysql 和 php 搜索和过滤数据
- javascript - 拼接/移除选中的数组元素会移除选中元素之后的其他元素
- c++ - 对“TESTCLASS::TESTCLASS()”的未定义引用
- angular - 测试静态函数的最佳方法是检查它是否是本月的第一个星期一(Typescript/Angular/Jasmin)