Code States
Front-end boost camp
Today
I
Learned
🥎 27일차 수업 시작!
오늘의 페어프로그래밍..! 준비된 파일을 가지고 몇가지 테스트를 통과하며 구현하는 것
페어분이 넘나 친절하게 알려주셔서 리액트 기초 코드짜는 법을 조금 이해할 수 있게 되었따.
참고링크 : font awesome - (https://fontawesome.com/docs/web/add-icons/how-to)
import React from 'react';
import './App.css';
import './global-style.css';
import { dummyTweets } from './static/dummyData';
// ! 위 코드는 수정하지 않습니다.
console.log(dummyTweets); // 개발 단계에서 사용하는 더미 데이터입니다.
const Sidebar = () => {
return (
<section className="sidebar">
<i className="far fa-comment-dots"></i>
// HTML 코드 사용 가능! font awesome 웹페이지 참고
</section>
);
};
const Counter = () => {
const tweetCounter = dummyTweets.length
// 콘텐츠 갯수를 세는 아이
// 더미트위츠 배열 속 객체 갯수(length) 사용
return (
<div className="tweetForm__input">
<div className="tweetForm__inputWrapper">
<div className="tweetForm__count" role="status">
total: {tweetCounter}
</div>
</div>
</div>
);
};
const Footer = () => {
return (
// 컴포넌트 안에는 하나의 자식 엘리먼트만 가능
// 기존 자식 요소인 div 위에 footer 태그를 씌워줌
<footer>
<div>
<img id="logo" src={`${process.env.PUBLIC_URL}/codestates-logo.png`} />
Copyright @ 2022 Code States
</div>
</footer>
);
};
const Tweets = () => {
return (
<ul className="tweets">
{dummyTweets.map((tweet) => {
// 박해커라는 밸류값을 가르키는 변수 하나 선언
const userNamePark = tweet.username === 'parkhacker'
// 그 박해커 변수, 삼항연산자를 활용해 박해커면 ~를 아니면 ~~~를 실행하는 함수 선언
const result = userNamePark ? 'tweet__username--purple' : 'tweet__username';
return (
<li className="tweet" key={tweet.id}>
<div className="tweet__profile">
// 사진 넣을 땐 img 태그
// jsx 특징 ! 변수 사용 시엔 {} 사용
// {tweet~~~~} 가 아니라 'tweet~~~' 면 URL 주소 그 자체가 올라감
<img src = {tweet.picture}></img>
</div>
<div className="tweet__content">
<div className="tweet__userInfo">
<div className={result}>
{tweet.username}
</div>
<div className='tweet__createdAt'>
{tweet.createdAt}
</div>
</div>
<div className='tweet__message'>
{tweet.content}
</div>
</div>
</li>
);
})}
</ul>
);
};
const Features = () => {
return (
<section className="features">
<div className="tweetForm__container">
<div className="tweetForm__wrapper">
<div className="tweetForm__profile"></div>
<Counter />
</div>
</div>
<Tweets />
<Footer />
</section>
);
};
const App = () => {
return (
<div className="App">
<main>
<Sidebar />
<Features />
</main>
</div>
);
};
// ! 아래 코드는 수정하지 않습니다.
export { App, Sidebar, Counter, Tweets, Features, Footer };
어렵지만 조은 페이분 만나 감사,,! 오늘 저녁엔 한번더 코드 찍어보고 내일 리액트 진도 예습 예정