Sunt foarte nou pentru ReactJs, JS și, practic, toate de dezvoltare web. Am încercarea de a crea o singură pagină de portofoliu site-ul, folosind ReactJS și a vrut să încercați unele tehnici mai avansate, cum ar fi folosind cârlige. Am vrut să creez un efect simplu în cazul în care o animație joacă o dată (atunci când un utilizator se conectează la site-ul meu), atunci ele sunt aduse la site-ul principal. Toate resursele pe care am găsit on-line se referă la ecrane de încărcare în timp ce preluarea datelor de la un API. Aici este codul pentru ecran de încărcare:
import Typical from 'react-typical';
import "./Loading.scss";
import {useState, useEffect} from 'react';
const Loading = function Loading() {
const [loading, setLoading] = useState(false);
useEffect(() => {
setLoading(true)
setTimeout(() => {
setLoading(false)
},18000);
}, [])
return (
<div>
<h1 id="loading">
{ loading ? <Typical oop={1} wrapper = 'p'
steps={[
"Hello",
2000,
"My name is Leonard.",
3000,
"I am an aspiring developer",
3000,
"Welcome to my website!",
3000,
]} /> : null}
</h1>
</div>
);
}
Eu sunt, folosind un foarte simplu de a reacționa pachet numit tipic care oferă o animație frumos de cuvinte fiind scris pe ecran ca o mașină de scris, apoi se șterse, apoi următorul bit de text se arată etc.. asta numai bucle odată. Am folosit useState și useEffect cârlige cu un cronometru pentru a setLoading la fals în 18 ani, care este atunci când animația se oprește. După cum puteți vedea am face animație numai dacă încărcarea este adevărat, folosind operatorul ternar, apoi o dată de încărcare devine setată la false atunci null se afișează. Mea app.js se pare ca acest lucru:
import Nav from './Components/Nav';
import "./App.scss";
import Loading from './Components/Loading';
function App() {
return (
<div>
<Loading />
<main>
<Nav/>
</main>
</div>
);
}
export default App;
(Scuze pentru îngrozitor JSX). Problema am este că ambele navbar și ecran de încărcare cu sarcini în același timp. Sunt sigur cum de a ascunde toate celelalte componente până când animația este terminat. Tot ce încerc este muuult prea complicat si chiar nu pare foarte eficient, la toate. Apreciez orice ajutor va multumesc!!!