React'ta bir profil sayfası oluşturmak sadece gerekli değil aynı zamanda çok eğlenceli! Kullanıcılarınızın kişisel bilgilerini şık bir şekilde görüntülemesine ve yönetmesine olanak tanır. Bu eğitimde, harika profil resimleri için Avatarium, sorunsuz gezinme için React Router, veri getirmek için Axios ve form girişlerini yönetmek için Formik dahil olmak üzere bazı harika npm paketlerini kullanarak şık bir profil sayfası oluşturacağız. Hadi dalalım ve muhteşem bir şey yapalım!
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
create-react-app
kullanılarak yeni bir React projesi oluşturulduÖncelikle, henüz yapmadıysanız yeni bir React projesi oluşturun:
npx create-react-app profile-page cd profile-page
Bu eğitim için birkaç npm paketine ihtiyacımız olacak:
Bu paketleri çalıştırarak yükleyin:
npm install @sabfry/avatarium react-router-dom axios formik
Uygulamamızdaki farklı sayfalar arasında gezinmek için React Router'ı kullanacağız. Öncelikle yönlendiriciyi App.js
kurun:
import React from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; import ProfilePage from './ProfilePage';
function App() { return ( <Router> <Switch> <Route path="/profile" component={ProfilePage} /> </Switch> </Router> ); }export default App;
Daha sonra bir ProfilePage.js
bileşeni oluşturun. Bu bileşen, kullanıcının avatarı, adı ve e-postası dahil olmak üzere profil bilgilerini görüntüler ve kullanıcının form.jsx kullanarak bilgilerini güncellemesine olanak tanır.
import React, { useState, useEffect } from 'react'; import axios from 'axios'; import Avatar from '@sabfry/avatarium'; import { Formik, Form, Field } from 'formik';
const ProfilePage = () => { const [user, setUser] = useState(null); useEffect(() => { axios.get('https://api.example.com/user') .then(response => setUser(response.data)) .catch(error => console.error('Error fetching user data:', error)); }, []); if (!user) return <div>Loading...</div>; return ( <div className="profile-page"> <h1>Profile Page</h1> <div className="profile-info"> <Avatar theme="blobs" /> <h2>{user.name}</h2> <p>{user.email}</p> <Formik initialValues={{ name: user.name, email: user.email }} onSubmit={(values, { setSubmitting }) => { axios.post('https://api.example.com/user/update', values) .then(response => { setUser(response.data); setSubmitting(false); }) .catch(error => { console.error('Error updating user data:', error); setSubmitting(false); }); }} > {({ isSubmitting }) => ( <Form> <div> <label htmlFor="name">Name</label> <Field id="name" name="name" placeholder="John Doe" /> </div> <div> <label htmlFor="email">Email</label> <Field id="email" name="email" placeholder="[email protected]" type="email" /> </div> <button type="submit" disabled={isSubmitting}> Update </button> </Form> )} </Formik> </div> </div> ); };export default ProfilePage;
Bu bileşende:
useState
kancasını kullanıyoruz.
useEffect
kancası, bileşen bağlandığında sahte bir API'den kullanıcı verilerini getirir.
Avatar
bileşenini kullanıyoruz.
Profil sayfasına stil vermek için bazı temel CSS'ler ekleyin. ProfilePage.css
dosyası oluşturun ve bunu ProfilePage.js
aktarın.
/* ProfilePage.css */ .profile-page { display: flex; flex-direction: column; align-items: center; padding: 20px; }
.profile-info { display: flex; flex-direction: column; align-items: center; border: 1px solid #ddd; padding: 20px; border-radius: 10px; background-color: #f9f9f9; }.profile-info div { margin-bottom: 10px; }button { background-color: #007bff; color: white; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer; }button:disabled { background-color: #c0c0c0; cursor: not-allowed; }
Bu CSS dosyasını ProfilePage.js
aktarın:
import './ProfilePage.css';
Son olarak, profil sayfasını çalışırken görmek için uygulamanızı çalıştırın:
npm start
Profil sayfasını görüntülemek için http://localhost:3000/profile
adresine gidin.
Bu eğitimde React, Avatarium, React Router, Axios ve Formik'i kullanarak basit bir profil sayfası oluşturduk. Bu sayfa, kullanıcı verilerini bir API'den alır ve bunları rastgele oluşturulmuş bir avatarla birlikte görüntüler ve kullanıcının bir form kullanarak bilgilerini güncellemesine olanak tanır. Kullanıcı bilgileri için ek alanlar, form için doğrulama kuralları ve geliştirilmiş stil gibi daha fazla özellik ekleyerek bu örneği genişletebilirsiniz.