0
votes

Créer-réact-app: comment charger HTML avant de réagir des rendus

J'essaie d'ajouter un écran éclabousseur avant de réagir des charges.

Puisque j'utilise réagissant scripts / réacteur-app mon index.tsx n'a cette partie: xxx

J'ai essayé d'ajouter ma propre div sur la même page mais ça ne 't show.

Je voudrais afficher un écran vide simple avec mon image Splash sur une minuterie de 1 seconde avant de réagir des charges pour éviter / masquer le déplacement des éléments de rendu.

** Si je ajoute l'écran dans App.TSX, le changement de vitesse se produit avant que l'écran charge

Mise à jour Rishabh a fait remarquer ci-dessous, index.html est dans / dossier public. J'ai donc fini par combiner 2 approches.

  1. Ajoutez un écran avant de réagir: XXX 2.

    chargement d'un chargeur approprié non supérieur pour .5 - 1 sec xxx

    jusqu'à présent, cette approche fonctionne mieux mais je tiens à la mise à jour si je trouve des problèmes ou quelque chose mieux


2 commentaires

Que voulez-vous dire par déplacement? Pourquoi n'avez-vous pas quelque chose comme la variable isolant dans l'état et rendez-vous conditionnellement votre application? Comme si elle est chargée, affichez-la, NULL ou un écran SPLASH et une fois que vous avez tout ce que vous avez tout ce que vous avez prêt, l'application complète?


L'extrait de la deuxième solution dans ce poste pourrait également aider: Stackoverflow.com/a/40989121/9598077


3 Réponses :


2
votes

Alors, allez à votre index.html dans votre dossier public et à l'intérieur

<- ajoutez le code HTML de l'écran SPLASH ICI ->

Ajoutez votre code d'écran SPLASH, lorsque vous réagissez des charges, il remplace tout le contenu à l'intérieur de la DIV avec racine ID


2 commentaires

Il n'y a pas d'index.html. Ceci est une application réagissante qui génère index.tsx. J'ai déjà essayé d'ajouter ma page Splash là-bas comme indiqué dans ma question


Vaut la peine de mentionner - si vous construisez une pwa et que vous voulez avoir une image à l'intérieur de l'index.html

Utilisez SVG ou convertissez votre image en base64 et utilisez une uri de données. Cela garantit que l'image se termine dans le manifeste de pré-cache générée automatiquement, car les données sont directement intégrées à Index.html, plutôt que dans un fichier d'image distinct.



0
votes

Je ne sais pas si cela fonctionnera du tout, ce n'est pas testé mais peut-être que cela vous mènera à la bonne direction? Donc, voici mes 2 cents

withsplash.js strong> p> xxx pré>

app.js strong> p>

class AnotherComponent extends Component {
  ...
}

export default withSplash(AnotherComponent);


3 commentaires

Merci! J'ai essayé cet itinéraire mais au moment où le code de réagissance est trop tard. J'avais besoin de quelque chose de plus immédiat. La solution dans Index.html fonctionne très bien


En fait, la solution Index.html est toujours saccadée :( Je vais essayer votre approche maintenant


Hey Hey n'ai pas essayé spécifiquement comme l'autre était similaire et cela a fonctionné, mais on dirait que cela fonctionnerait la même chose!



1
votes

Ceci est un exemple pour afficher le chargeur pendant cinq secondes à l'aide de état code> et Settimeout () code>, à la place de code> vous pouvez DONNER SPLASH SCREE Composant CODE>.

import React, { Component } from 'react';

import Drawer from '../Drawer/Drawer';
import Loader from '../../components/UI/Spinner/Loader/Loader';

class App extends Component {
  state = {
    loading: true
  }

  componentDidMount(){
    setTimeout(() => {
      this.setState({loading: false});
    }, 5000);
  }

  render() {  
    return (
      <React.Fragment>
        {
          this.state.loading ? <Loader />: <Drawer />
        }
      </React.Fragment>
    );
  }
}

export default App;


1 commentaires

Jusqu'à présent, cela fonctionne beaucoup mieux que mon chargeur HTML!