ReactJs, JS ve temelde tüm web geliştirme için gerçekten yeniyim. ReactJS kullanarak tek sayfalık bir portföy web sitesi oluşturmaya çalışıyorum ve kanca kullanmak gibi daha gelişmiş teknikleri denemek istedim. Bir animasyonun bir kez oynatıldığı (bir kullanıcı web siteme ilk giriş yaptığında) basit bir efekt oluşturmak istedim, sonra ana siteye getirildiler. Çevrimiçi bulduğum tüm kaynaklar, bir apı'den veri alırken yükleme ekranlarıyla ilgilidir. İşte yükleme ekranı için kodum:
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>
);
}
Typical adlı çok basit bir react paketi kullanıyorum, bu da ekranda daktilo gibi yazılan kelimelerin güzel bir animasyonunu veriyor, sonra siliniyor, sonra bir sonraki metin parçası gösteriliyor vb.. bu sadece bir kez döner. useState ve useEffect kancalarını, animasyonun durduğu 18 saniye içinde false değerine ayarlamak için bir zamanlayıcı ile kullandım. Gördüğünüz gibi animasyonu yalnızca yükleme doğruysa, üçlü bir işleç kullanarak oluşturuyorum, sonra yükleme false olarak ayarlandıktan sonra null görüntüleniyor. Benim uygulamam.js şuna benziyor:
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;
(Korkunç JSX için özür dilerim). Yaşadığım sorun, hem gezinme çubuğunun hem de yükleme ekranının aynı anda yüklenmesidir. Animasyon bitene kadar diğer tüm bileşenlerimi nasıl gizleyeceğimden emin değilim. Denediğim her şey karmaşıktır ve gerçekten çok verimli görünmüyor. Herhangi bir yardım için teşekkür ederim teşekkür ederim!