Quelle est la manière standard d'afficher une icône de chargeur avant que le navigateur télécharge tous les fichiers js et charge l'application React.

Puis-je faire quelque chose comme ça sans rien casser?

<div id="content" class="app">
  Loading...
</div>
2
Michal 16 janv. 2017 à 18:38

2 réponses

Meilleure réponse

Oui.

Une fois votre javascript chargé, vous pouvez remplacer Loading... en rendant votre application react dans le même <div>

render(
  <App />, 
  document.getElementById('content')
);
5
T Mitchell 16 janv. 2017 à 15:42

Une façon de faire cela en utilisant les méthodes du cycle de vie component.

class App extends React.Component {
    constructor(props){
      super(props);
      this.state = {
        loading: true
      };
    }
  
    componentWillMount(){
       this.setState({loading: true}); //optional 
    }

    componentDidMount(){
        this.setState({loading: false}) 
    }
  
    render() {
        return (
            <section className="content">
              {this.state.loading && 'loading...'} {/*You can also use custom loader icon*/}
              <p>Your content comes here</p>
              {this.props.children}
            </section>
        );
    }
}

ReactDOM.render(<App />, document.getElementById("app"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app">
  
</div>
0
Jyothi Babu Araja 16 janv. 2017 à 15:51