【发布时间】:2020-10-16 11:59:20
【问题描述】:
非常简单的例子:我的 App.js 文件读取
import React from 'react';
import Test from './component/Test';
function App() {
return (
<div className="App">
<Test/>
</div>
)
}
export default App;
我的 Test.js 文件读取
import React, { Component } from 'react'
class Test extends Component {
render() {
console.log('rendered')
return null
}
}
export default Test
在控制台中,“rendered”总是打印两次。为什么?
【问题讨论】:
-
另外几个 console.log 测试:App.js 函数确实只调用了一次。 Test.js componentDidMount() 也肯定被调用一次
-
这与我在 localhost:3000/ 上以开发模式运行应用程序有关吗?如果是这样的话,这种行为可以/应该改变吗?
-
谢谢!我很好奇“幕后”发生了什么,即这是一种正常行为有什么好处?
-
我自己对它还很陌生,但有些生命周期方法会被多次调用。我认为有些是渲染、componentDidMount 等。这些都会被调用,这就是为什么 render 被调用了两次,至少据我所知。
标签: javascript reactjs render