React Js 中的生命周期方法如何与变量 unsubfromAuth 一起使用?
How lifecycle methods in react Js are working with the variable unsubfromAuth?
class App extends Component{
constructor(){
super()
this.state = {
currentuser : null
}}
unsubfromAuth = null
componentDidMount(){
this.unsubfromAuth = auth.onAuthStateChanged((user) => {
this.setState({currentuser : user})
console.log(user)
})
}
componentWillUnmount() {
this.unsubfromAuth()
}
render(){
return (
<div className="App">
<Router>
<Header currentUser={this.state.currentuser}/>
<Switch>
<Route exact path="/" component={Home}/>
<Route exact path="/Hats" component={Hats}/>
<Route exact path="/shoes" component={Shoes}/>
<Route exact path="/jackets" component={Jacket}/>
<Route exact path="/men" component={Men}/>
<Route exact path="/women" component={Women}/>
<Route exact path="/shop" component={Shop}/>
<Route exact path="/signin" component={Signin}/>
</Switch>
</Router>
</div>
)
}}
export default App
为什么用在ComponentWillUnmount中?我听说了一些关于内存泄漏的事情,它能阻止它吗?
为什么它在 ComponentDidMount 中被改变了?我在 Reactjs 中使用 firebase。
这是 React 组件生命周期中的标准流程,当您必须订阅某个事件时。
这只是实例变量的初始化,一旦挂载Component就会执行:
unsubfromAuth = null
这是您有效订阅事件 ("auth-state-changed") 并开始收听的地方,您希望始终订阅 componentDidMount
或 [=14= 中的此类事件] 如果你使用钩子,因为这是在组件完全安装时执行的。
方法 auth.onAuthStateChanged()
returns 调用时自动清除任何订阅的函数。
componentDidMount(){
this.unsubfromAuth = auth.onAuthStateChanged((user) => {
this.setState({currentuser : user})
console.log(user)
})
}
退订方法调用时间:
componentWillUnmount() {
this.unsubfromAuth()
}
这将在组件即将卸载以清除订阅之前执行,因为您不希望您的事件侦听器和订阅在您卸载时继续保留在内存中,否则您最终会占用内存如果您的组件多次安装和卸载,则会发生泄漏。
class App extends Component{
constructor(){
super()
this.state = {
currentuser : null
}}
unsubfromAuth = null
componentDidMount(){
this.unsubfromAuth = auth.onAuthStateChanged((user) => {
this.setState({currentuser : user})
console.log(user)
})
}
componentWillUnmount() {
this.unsubfromAuth()
}
render(){
return (
<div className="App">
<Router>
<Header currentUser={this.state.currentuser}/>
<Switch>
<Route exact path="/" component={Home}/>
<Route exact path="/Hats" component={Hats}/>
<Route exact path="/shoes" component={Shoes}/>
<Route exact path="/jackets" component={Jacket}/>
<Route exact path="/men" component={Men}/>
<Route exact path="/women" component={Women}/>
<Route exact path="/shop" component={Shop}/>
<Route exact path="/signin" component={Signin}/>
</Switch>
</Router>
</div>
)
}}
export default App
为什么用在ComponentWillUnmount中?我听说了一些关于内存泄漏的事情,它能阻止它吗? 为什么它在 ComponentDidMount 中被改变了?我在 Reactjs 中使用 firebase。
这是 React 组件生命周期中的标准流程,当您必须订阅某个事件时。 这只是实例变量的初始化,一旦挂载Component就会执行:
unsubfromAuth = null
这是您有效订阅事件 ("auth-state-changed") 并开始收听的地方,您希望始终订阅 componentDidMount
或 [=14= 中的此类事件] 如果你使用钩子,因为这是在组件完全安装时执行的。
方法 auth.onAuthStateChanged()
returns 调用时自动清除任何订阅的函数。
componentDidMount(){
this.unsubfromAuth = auth.onAuthStateChanged((user) => {
this.setState({currentuser : user})
console.log(user)
})
}
退订方法调用时间:
componentWillUnmount() {
this.unsubfromAuth()
}
这将在组件即将卸载以清除订阅之前执行,因为您不希望您的事件侦听器和订阅在您卸载时继续保留在内存中,否则您最终会占用内存如果您的组件多次安装和卸载,则会发生泄漏。