Si la bibliothèque d'envoi des requêtes réseau prend en charge l'interruption de l'appel de requête réseau en cours, vous pouvez certainement l'appeler dans la fonction componentWillUnmount
méthode.
Toutefois, en ce qui concerne le nettoyage des DOM
est préoccupant. Je vais vous donner quelques exemples, basés sur mon expérience actuelle.
Le premier est -
import React, { Component } from 'react';
export default class SideMenu extends Component {
constructor(props) {
super(props);
this.state = {
};
this.openMenu = this.openMenu.bind(this);
this.closeMenu = this.closeMenu.bind(this);
}
componentDidMount() {
document.addEventListener("click", this.closeMenu);
}
componentWillUnmount() {
document.removeEventListener("click", this.closeMenu);
}
openMenu() {
}
closeMenu() {
}
render() {
return (
<div>
<a
href = "javascript:void(0)"
className = "closebtn"
onClick = {this.closeMenu}
>
×
</a>
<div>
Some other structure
</div>
</div>
);
}
}
Ici, je supprime l'écouteur d'événement de clic que j'ai ajouté lorsque le composant a été monté.
Le deuxième est
import React from 'react';
import { Component } from 'react';
import ReactDom from 'react-dom';
import d3Chart from './d3charts';
export default class Chart extends Component {
static propTypes = {
data: React.PropTypes.array,
domain: React.PropTypes.object
};
constructor(props){
super(props);
}
componentDidMount(){
let el = ReactDom.findDOMNode(this);
d3Chart.create(el, {
width: '100%',
height: '300px'
}, this.getChartState());
}
componentDidUpdate() {
let el = ReactDom.findDOMNode(this);
d3Chart.update(el, this.getChartState());
}
getChartState() {
return {
data: this.props.data,
domain: this.props.domain
}
}
componentWillUnmount() {
let el = ReactDom.findDOMNode(this);
d3Chart.destroy(el);
}
render() {
return (
<div className="Chart">
</div>
);
}
}
Ici, j'essaie d'intégrer d3.js
en réagissant dans componentWillUnmount
Je supprime l'élément graphique du DOM.
En dehors de cela, j'ai utilisé componentWillUnmount
pour le nettoyage des modales de bootstrap après ouverture.
Je suis sûr qu'il y a des tonnes d'autres cas d'utilisation, mais voici ceux que j'ai utilisés componentWillUnMount
. J'espère que cela vous aidera.