- Π‘ΡΠ²ΠΎΡΠ΅Π½ΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΡΠΉ
goit-react-hw-01-components
. - ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π²ΡΡΡ
Π·Π°Π²Π΄Π°Π½Ρ ΡΠ΅Π½Π΄Π΅ΡΡΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΡΠΉ ΡΡΠΎΡΡΠ½ΡΡ, Π²ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΡΠΏΡΠ»ΡΠ½ΠΎΠ³ΠΎ
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° β ΠΊΠΎΡΠ΅Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
<App>
. - ΠΡΠΈ Π·Π΄Π°ΡΡ Π΄ΠΎΠΌΠ°ΡΠ½ΡΠΎΡ ΡΠΎΠ±ΠΎΡΠΈ Ρ ΠΏΠΎΡΠΈΠ»Π°Π½Π½Ρ Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΡΠΉ Π· Π²ΠΈΡ ΡΠ΄Π½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΡ.
- Π ΡΠ°ΠΏΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΡΡ Ρ ΠΏΠΎΡΠΈΠ»Π°Π½Π½Ρ Π½Π° ΠΆΠΈΠ²Ρ ΡΡΠΎΡΡΠ½ΠΊΡ Π½Π°
GitHub pages
. - ΠΡΠ΄ ΡΠ°Ρ Π²ΡΠ΄Π²ΡΠ΄ΡΠ²Π°Π½Π½Ρ ΡΠΎΠ±ΠΎΡΠΎΡ ΡΡΠΎΡΡΠ½ΠΊΠΈ (GitHub pages) Π·Π°Π²Π΄Π°Π½Π½Ρ, Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π²ΡΠ΄ΡΡΡΠ½Ρ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ ΡΠ° ΠΏΠΎΠΏΠ΅ΡΠ΅Π΄ΠΆΠ΅Π½Π½Ρ.
- ΠΠ»Ρ ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Ρ ΠΎΠΊΡΠ΅ΠΌΠ° ΠΏΠ°ΠΏΠΊΠ° Π· ΡΠ°ΠΉΠ»ΠΎΠΌ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ΡΡΠΈΠ»ΡΠ².
- ΠΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΠ² ΠΎΠΏΠΈΡΠ°Π½Ρ
propTypes
. - ΠΡΠ΅, ΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΡΡΠΊΡΡ Ρ Π²ΠΈΠ³Π»ΡΠ΄Ρ ΠΏΡΠΎΠΏΡΡΠ², ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡΡ ΠΉΠΎΠΌΡ ΠΏΡΠ΄ ΡΠ°Ρ Π²ΠΈΠΊΠ»ΠΈΠΊΡ.
- ΠΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΠ² Π·ΡΠΎΠ·ΡΠΌΡΠ»Ρ ΡΠ° ΠΎΠΏΠΈΡΠΎΠ²Ρ.
- JS-ΠΊΠΎΠ΄ ΡΠΈΡΡΠΈΠΉ Ρ Π·ΡΠΎΠ·ΡΠΌΡΠ»ΠΈΠΉ, Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΡΡΡ
Prettier
. - Π‘ΡΠΈΠ»ΡΠ·Π°ΡΡΡ Π²ΠΈΠΊΠΎΠ½Π°Π½Π°
CSS-ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ
Π°Π±ΠΎStyled Components
, ΡΠΎΠΌΡ ΠΊΠ»Π°ΡΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΡΡΡΠΎΠΌΡ DOM Π²ΡΠ΄ΡΡΠ·Π½ΡΡΠΈΠΌΡΡΡΡΡ Π²ΡΠ΄ ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ². - ΠΠΎΡΡΠ°ΡΠ½ΡΠΎ Π±Π°Π·ΠΎΠ²ΠΎΡ ΡΡΠΈΠ»ΡΠ·Π°ΡΡΡ Π·Π°ΡΡΠΎΡΡΠ½ΠΊΡ, Π½Π°ΡΠ°ΠΌΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ½ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ ΠΏΡΠ°ΡΡΠ²Π°ΡΠΈ, Π° Π²ΠΆΠ΅ ΠΏΠΎΡΡΠΌ Π±ΡΡΠΈ Π³Π°ΡΠ½ΠΈΠΌ. ΠΡΠΈΠ΄ΡΠ»ΡΠΉ 20% ΡΠ°ΡΡ Π½Π° CSS Ρ 80% Π½Π° JS.
ΠΠ΅ΠΎΠ±Ρ
ΡΠ΄Π½ΠΎ ΡΡΠ²ΠΎΡΠΈΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ <Profile>
, Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ ΡΠΊΠΎΠ³ΠΎ ΠΌΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±
Π²ΡΠ΄ΠΎΠ±ΡΠ°ΠΆΠ°ΡΠΈ ΡΠ½ΡΠΎΡΠΌΠ°ΡΡΡ ΠΏΡΠΎ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ° ΡΠΎΡΡΠ°Π»ΡΠ½ΠΎΡ ΠΌΠ΅ΡΠ΅ΠΆΡ. ΠΠ°Π½Ρ ΠΏΡΠΎ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ°
Π»Π΅ΠΆΠ°ΡΡ Ρ ΡΠ°ΠΉΠ»Ρ user.json.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ ΠΏΡΠΈΠΉΠΌΠ°ΡΠΈ ΠΊΡΠ»ΡΠΊΠ° ΠΏΡΠΎΠΏΡΡΠ² Π· ΡΠ½ΡΠΎΡΠΌΠ°ΡΡΡΡ ΠΏΡΠΎ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ°:
username
β ΡΠΌ'Ρ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ°tag
β ΡΠ΅Π³ Π² ΡΠΎΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠ΅ΠΆΡ Π±Π΅Π·@
location
β ΠΌΡΡΡΠΎ Ρ ΠΊΡΠ°ΡΠ½Π°avatar
β ΠΏΠΎΡΠΈΠ»Π°Π½Π½Ρ Π½Π° Π·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½Ρstats
β ΠΎΠ±'ΡΠΊΡ Π· ΡΠ½ΡΠΎΡΠΌΠ°ΡΡΡΡ ΠΏΡΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ ΡΡΠ²ΠΎΡΡΠ²Π°ΡΠΈ DOM Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π½Π°ΡΡΡΠΏΠ½ΠΎΡ ΡΡΡΡΠΊΡΡΡΠΈ.
<div class="profile">
<div class="description">
<img
src="https://cdn-icons-png.flaticon.com/512/1077/1077012.png"
alt="User avatar"
class="avatar"
/>
<p class="name">Petra Marica</p>
<p class="tag">@pmarica</p>
<p class="location">Salvador, Brasil</p>
</div>
<ul class="stats">
<li>
<span class="label">Followers</span>
<span class="quantity">1000</span>
</li>
<li>
<span class="label">Views</span>
<span class="quantity">2000</span>
</li>
<li>
<span class="label">Likes</span>
<span class="quantity">3000</span>
</li>
</ul>
</div>
import user from 'ΠΏΡΡΡ/ΠΊ/user.json;
<Profile
username={user.username}
tag={user.tag}
location={user.location}
avatar={user.avatar}
stats={user.stats}
/>
Π‘ΡΠ²ΠΎΡΠΈΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ <Statistics>
, ΡΠΊΠΈΠΉ Π±ΠΈ Π²ΡΠ΄ΠΎΠ±ΡΠ°ΠΆΠ°Π² ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π· ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΈΡ
ΠΏΡΠΎΠΏΡΡΠ². ΠΠ°ΠΏΡΠΈΠΊΠ»Π°Π΄, Π·Π°Π²Π°Π½ΡΠ°ΠΆΠ΅Π½Π½Ρ Ρ Ρ
ΠΌΠ°ΡΡ Π·Π° ΡΠΈΠΏΠΎΠΌ ΡΠ°ΠΉΠ»ΡΠ², Π²ΡΠ΄Π²ΡΠ΄ΡΠ²Π°Π½Π½Ρ
Π²Π΅Π±-ΡΡΠΎΡΡΠ½ΠΊΠΈ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ°ΠΌΠΈ ΡΡΠ·Π½ΠΈΡ
ΠΊΡΠ°ΡΠ½, ΡΡΠ½Π°Π½ΡΠΎΠ²Ρ Π²ΠΈΡΡΠ°ΡΠΈ ΡΠΎΡΠΎ. ΠΠ°Π½Ρ ΠΏΡΠΎ
ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π»Π΅ΠΆΠ°ΡΡ Ρ ΡΠ°ΠΉΠ»Ρ data.json.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ ΠΏΡΠΈΠΉΠΌΠ°ΡΠΈ Π΄Π²Π° ΠΏΡΠΎΠΏΠΈ title
Ρ stats
, Π² ΡΠΊΠΈΡ
Π²ΠΊΠ°Π·ΡΡΡΡΡΡ
Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ° ΠΎΠ±'ΡΠΊΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ.
title
β Π½Π΅ ΠΎΠ±ΠΎΠ²'ΡΠ·ΠΊΠΎΠ²ΠΈΠΉ, Ρ ΡΠΊΡΠΎ Π²ΡΠ½ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΈΠΉ, Π½Π΅ ΠΏΠΎΠ²ΠΈΠ½Π½Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠΈΡΡ ΡΠΎΠ·ΠΌΡΡΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°<h2>
.stats
β ΠΌΠ°ΡΠΈΠ² ΠΎΠ±'ΡΠΊΡΡΠ², ΡΠΎ ΠΌΡΡΡΡΡΡ ΡΠ½ΡΠΎΡΠΌΠ°ΡΡΡ ΠΏΡΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ. ΠΠΎΠΆΠ΅ ΠΌΠ°ΡΠΈ Π΄ΠΎΠ²ΡΠ»ΡΠ½Ρ ΠΊΡΠ»ΡΠΊΡΡΡΡ Π΅Π»Π΅ΠΌΠ΅Π½ΡΡΠ².- ΠΠΎΠ»ΡΡ ΡΠΎΠ½Ρ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π² ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½Ρ ΠΌΠΎΠΆΠ½Π° ΠΏΡΠΎΠΏΡΡΡΠΈΡΠΈ Π°Π±ΠΎ ΡΡΠ²ΠΎΡΠΈΡΠΈ ΡΡΠ½ΠΊΡΡΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΡΡ Π²ΠΈΠΏΠ°Π΄ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΡΠΎΡΡ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ ΡΡΠ²ΠΎΡΡΠ²Π°ΡΠΈ DOM Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π½Π°ΡΡΡΠΏΠ½ΠΎΡ ΡΡΡΡΠΊΡΡΡΠΈ.
<section class="statistics">
<h2 class="title">Upload stats</h2>
<ul class="stat-list">
<li class="item">
<span class="label">.docx</span>
<span class="percentage">4%</span>
</li>
<li class="item">
<span class="label">.mp3</span>
<span class="percentage">14%</span>
</li>
<li class="item">
<span class="label">.pdf</span>
<span class="percentage">41%</span>
</li>
<li class="item">
<span class="label">.mp4</span>
<span class="percentage">12%</span>
</li>
</ul>
</section>
import data from '/ΠΏΡΡΡ/ΠΊ/data.json';
<Statistics title="Upload stats" stats={data} />;
<Statistics stats={data} />;
ΠΠ΅ΠΎΠ±Ρ
ΡΠ΄Π½ΠΎ ΡΡΠ²ΠΎΡΠΈΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ <FriendList>
, Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ ΡΠΊΠΎΠ³ΠΎ ΠΌΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±
Π²ΡΠ΄ΠΎΠ±ΡΠ°ΠΆΠ°ΡΠΈ ΡΠ½ΡΠΎΡΠΌΠ°ΡΡΡ ΠΏΡΠΎ Π΄ΡΡΠ·ΡΠ² ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ°. ΠΠ½ΡΠΎΡΠΌΠ°ΡΡΡ ΠΏΡΠΎ Π΄ΡΡΠ·ΡΠ²
Π·Π±Π΅ΡΡΠ³Π°ΡΡΡΡΡ Ρ ΡΠ°ΠΉΠ»Ρ friends.json.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ ΠΏΡΠΈΠΉΠΌΠ°ΡΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠΏ friends
β ΠΌΠ°ΡΠΈΠ² ΠΎΠ±'ΡΠΊΡΡΠ² Π΄ΡΡΠ·ΡΠ².
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ ΡΡΠ²ΠΎΡΡΠ²Π°ΡΠΈ DOM Π½Π°ΡΡΡΠΏΠ½ΠΎΡ ΡΡΡΡΠΊΡΡΡΠΈ.
<ul class="friend-list">
<!-- ΠΠΎΠ²ΡΠ»ΡΠ½Π° ΠΊΡΠ»-ΡΡΡ FriendListItem -->
</ul>
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ ΠΏΡΠΈΠΉΠΌΠ°ΡΠΈ ΠΊΡΠ»ΡΠΊΠ° ΠΏΡΠΎΠΏΡΠ²:
avatar
β ΠΏΠΎΡΠΈΠ»Π°Π½Π½Ρ Π½Π° Π°Π²Π°ΡΠ°Ρname
β ΡΠΌ'Ρ Π΄ΡΡΠ³Π°isOnline
β Π±ΡΠ»Ρ, ΡΠΎ ΡΠΈΠ³Π½Π°Π»ΡΠ·ΡΡ ΠΏΡΠΎ ΡΡΠ°Π½ Π΄ΡΡΠ³Π°: Π² ΠΌΠ΅ΡΠ΅ΠΆΡ Π°Π±ΠΎ Π½Ρ.
ΠΠ°Π»Π΅ΠΆΠ½ΠΎ Π²ΡΠ΄ ΠΏΡΠΎΠΏΠ° isOnline
, ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ Π·ΠΌΡΠ½ΡΠ²Π°ΡΠΈΡΡ ΠΊΠΎΠ»ΡΡ ΡΠΎΠ½Ρ span.status
. Π¦Π΅
ΠΌΠΎΠΆΠ½Π° Π·ΡΠΎΠ±ΠΈΡΠΈ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ ΡΡΠ·Π½ΠΈΡ
CSS-ΠΊΠ»Π°ΡΡΠ² Π°Π±ΠΎ Styled Components.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ ΡΡΠ²ΠΎΡΡΠ²Π°ΡΠΈ DOM Π½Π°ΡΡΡΠΏΠ½ΠΎΡ ΡΡΡΡΠΊΡΡΡΠΈ.
<li class="item">
<span class="status"></span>
<img class="avatar" src="" alt="User avatar" width="48" />
<p class="name"></p>
</li>
import friends from 'ΠΏΡΡΡ/ΠΊ/friends.json';
<FriendList friends={friends} />,
ΠΠ΅ΠΎΠ±Ρ ΡΠ΄Π½ΠΎ ΡΡΠ²ΠΎΡΠΈΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΡΠΎΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΡΠΉ Π² ΠΎΡΠΎΠ±ΠΈΡΡΠΎΠΌΡ ΠΊΠ°Π±ΡΠ½Π΅ΡΡ ΡΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π±Π°Π½ΠΊΡ.
ΠΠ°Π½Ρ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Ρ ΡΠΎΡΠΌΠ°ΡΡ JSON Ρ ΡΠ°ΠΉΠ»Ρ transactions.json. Π¦Π΅ ΠΌΠ°ΡΠΈΠ² ΠΎΠ±'ΡΠΊΡΡΠ², ΠΊΠΎΠΆΠ΅Π½ ΠΎΠ±'ΡΠΊΡ ΠΎΠΏΠΈΡΡΡ ΠΎΠ΄Π½Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΡΡ Π· Π½Π°ΡΡΡΠΏΠ½ΠΈΠΌΠΈ Π²Π»Π°ΡΡΠΈΠ²ΠΎΡΡΡΠΌΠΈ:
id
β ΡΠ½ΡΠΊΠ°Π»ΡΠ½ΠΈΠΉ ΡΠ΄Π΅Π½ΡΠΈΡΡΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΡΡtype
β ΡΠΈΠΏ ΡΡΠ°Π½Π·Π°ΠΊΡΡΡamount
- ΡΡΠΌΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΡΡcurrency
- ΡΠΈΠΏ Π²Π°Π»ΡΡΠΈ
ΠΠ΅ΠΎΠ±Ρ
ΡΠ΄Π½ΠΎ ΡΡΠ²ΠΎΡΠΈΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ <TransactionHistory>
, ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΉΠΌΠ°Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠΏ
items
β ΠΌΠ°ΡΠΈΠ² ΠΎΠ±'ΡΠΊΡΡΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΡΠΉ Π· transactions.json
. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΠ²ΠΎΡΡΡ
ΡΠΎΠ·ΠΌΡΡΠΊΡ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΠΆΠ½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΡΡ β ΡΠ΅ ΡΡΠ΄ΠΎΠΊ ΡΠ°Π±Π»ΠΈΡΡ. Π£ ΠΏΡΠΈΠΊΠ»Π°Π΄Ρ Π½Π°Π²Π΅Π΄Π΅Π½Π°
ΡΠΎΠ·ΠΌΡΡΠΊΠ° Π΄Π²ΠΎΡ
ΡΡΠ°Π½Π·Π°ΠΊΡΡΠΉ.
<table class="transaction-history">
<thead>
<tr>
<th>Type</th>
<th>Amount</th>
<th>Currency</th>
</tr>
</thead>
<tbody>
<tr>
<td>Invoice</td>
<td>125</td>
<td>USD</td>
</tr>
<tr>
<td>Withdrawal</td>
<td>85</td>
<td>USD</td>
</tr>
</tbody>
</table>
import transactions from 'ΠΏΡΡΡ/ΠΊ/transactions.json';
<TransactionHistory items={transactions} />;
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Create React App. ΠΠ»Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΠ±ΡΠ°ΡΠΈΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΡΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ GoIT ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΆΠΌΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Β«Use this templateΒ»
ΠΈ Π²ΡΠ±Π΅ΡΠΈ ΠΎΠΏΡΠΈΡ
Β«Create a new repositoryΒ»
, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π³Π΅ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΠ°ΠΏΠΎΠ»Π½ΠΈ ΠΏΠΎΠ»Π΅
Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΡΠ±Π΅Π΄ΠΈΡΡ ΡΡΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π°ΠΆΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ
Β«Create repository from templateΒ»
.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Settings
> Actions
> General
ΠΊΠ°ΠΊ
ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
ΠΡΠΎΡΠΊΡΠΎΠ»ΠΈΠ² ΡΡΡΠ°Π½ΠΈΡΡ Π΄ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ°, Π² ΡΠ΅ΠΊΡΠΈΠΈ Β«Workflow permissionsΒ»
Π²ΡΠ±Π΅ΡΠΈ
ΠΎΠΏΡΠΈΡ Β«Read and write permissionsΒ»
ΠΈ ΠΏΠΎΡΡΠ°Π²Ρ Π³Π°Π»ΠΎΡΠΊΡ Π² ΡΠ΅ΠΊΠ±ΠΎΠΊΡΠ΅. ΠΡΠΎ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄Π΅ΠΏΠ»ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ Π»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠΎ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ-ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΠ°Π»Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΠΉ Ρ Π½ΠΈΠΌ ΠΊΠ°ΠΊ Ρ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ Π»ΠΈΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ, ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉ Π΅Π³ΠΎ ΡΠ΅Π±Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, ΠΏΠΈΡΠΈ ΠΊΠΎΠ΄, Π΄Π΅Π»Π°ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠΉ ΠΈΡ Π½Π° GitHub.
- Π£Π±Π΅Π΄ΠΈΡΡ ΡΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° LTS-Π²Π΅ΡΡΠΈΡ Node.js. Π‘ΠΊΠ°ΡΠ°ΠΉ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈ Π΅Ρ Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
npm install
. - ΠΠ°ΠΏΡΡΡΠΈ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ
npm start
. - ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://localhost:3000. ΠΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠΎΠ΄Π°ΠΊΡΠ½ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ Π»ΠΈΠ½ΡΠΈΠ½Π³, ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΠΈ
Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡΡΡ Π½Π° GitHub Pages, Π² Π²Π΅ΡΠΊΡ gh-pages
, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ
Π²Π΅ΡΠΊΠ° main
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΡΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ ΠΏΡΠ»-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π² ΡΠ°ΠΉΠ»Π΅ package.json
ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π΅ homepage
, Π·Π°ΠΌΠ΅Π½ΠΈΠ²
your_username
ΠΈ your_repo_name
Π½Π° ΡΠ²ΠΎΠΈ, ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° GitHub.
"homepage": "https://your_username.github.io/your_repo_name/"
ΠΠ°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ GitHub-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ (Settings
> Pages
) ΠΈ
Π²ΡΡΡΠ°Π²ΠΈΡΡ ΡΠ°Π·Π΄Π°ΡΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½ Π²Π΅ΡΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ /root
Π²Π΅ΡΠΊΠΈ gh-pages
, Π΅ΡΠ»ΠΈ
ΡΡΠΎ Π½Π΅Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
Π‘ΡΠ°ΡΡΡ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΊΡΠ°ΠΉΠ½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ Π²ΠΎΠ·Π»Π΅ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°.
- ΠΠ΅Π»ΡΡΠΉ ΡΠ²Π΅Ρ - Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ±ΠΎΡΠΊΠ° ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΠ΅Π»Π΅Π½ΡΠΉ ΡΠ²Π΅Ρ - Π΄Π΅ΠΏΠ»ΠΎΠΉ Π·Π°Π²Π΅ΡΡΠΈΠ»ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ.
- ΠΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ - Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π»ΠΈΠ½ΡΠΈΠ½Π³Π°, ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΠ°ΡΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ»ΠΈΠΊΠ½ΡΠ² ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅, ΠΈ Π²
Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Details
.
Π§Π΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ°ΡΡ ΠΌΠΈΠ½ΡΡ, ΠΆΠΈΠ²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ
ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π² ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π΅ homepage
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ
ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΆΠΈΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
https://goitacademy.github.io/react-homework-template.
ΠΡΠ»ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°, ΡΠ±Π΅Π΄ΠΈΡΡ ΡΡΠΎ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Console
Π½Π΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ
ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΏΡΡΡΠΌΠΈ ΠΊ CSS ΠΈ JS ΡΠ°ΠΉΠ»Π°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° (404). Π‘ΠΊΠΎΡΠ΅Π΅
Π²ΡΠ΅Π³ΠΎ Ρ ΡΠ΅Π±Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° homepage
Π² ΡΠ°ΠΉΠ»Π΅ package.json
.
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ react-router-dom
Π΄Π»Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ,
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ <BrowserRouter>
, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π² ΠΏΡΠΎΠΏΠ΅
basename
ΡΠΎΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. Π‘Π»Π΅Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½.
<BrowserRouter basename="/your_repo_name">
<App />
</BrowserRouter>
- ΠΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΡΠ° Π² Π²Π΅ΡΠΊΡ
main
GitHub-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ (GitHub Action) ΠΈΠ· ΡΠ°ΠΉΠ»Π°.github/workflows/deploy.yml
. - ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π³Π΄Π΅ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π»ΠΈΠ½ΡΠΈΠ½Π³ ΠΈ ΡΠ±ΠΎΡΠΊΡ ΠΏΠ΅ΡΠ΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ.
- ΠΡΠ»ΠΈ Π²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΡΠΎΡΠ»ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎΠ±ΡΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½ Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²Π΅ΡΠΊΡ
gh-pages
. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π² Π»ΠΎΠ³Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.