[WEB] React 실행
드디어 React를 사용해서 내 컴에서 실행했다. !! 이미 npm install -g create-react-app
을 하였으므로 앞으로 다른 react폴더를 만들고 싶다면 이렇게 하면 된다.
- cmd 창에서
cd 경로
-> react 폴더를 넣고 싶은 경로로 이동 - 위 상태에서
create-react-app (react 폴더 이름)
cd (react 폴더 이름)
npm start
리액트의 기능
public
폴더에 파일들을 추가해서 사용할 수 있다. src > App.js
를 사용해서 사용자 지정 태그를 만들 수 있다. 이를 사용하면 좀더 가독성이 좋은 코드를 작성할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | //src > App.js 수정본 import logo from './logo.svg'; import './App.css'; import { Component } from 'react/cjs/react.production.min'; import { render } from '@testing-library/react'; class Subject extends Component { render() { return ( <header> <h1>WEB</h1> world wide web! </header> ); } } class TOC extends Component { render() { return( <nav> <ul> <li> <a href="1.html">HTML</a> </li> <li> <a href="2.html">CSS</a> </li> <li> <a href="3.html">JavaScript</a > </li> </ul> </nav> ); } } class Content extends Component { render() { return ( <article> <h2>HTML</h2> HTML is HyperText Markup Language. </article> ); } } class App extends Component { render() { return ( <div className="App"> <Subject></Subject> <TOC></TOC> <Content></Content> </div> ); } } export default App; | cs |
그럼 alcoholic에 적용시켜 보도록 하기 전에!! 일단 전에 header 작성법에 대해서 공부하였다. 이 내용은 https://www.youtube.com/watch?v=X91jsJyZofw
을 통해서 공부를 하였다.
See the Pen Untitled by sohnsookyoung (@sohnsookyoung) on CodePen.
이 코드를 분석 & 적용할 예정
html 파일
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
: 뷰포트의 너비가 웹 사이트를 보고 있는 장치와 동일하다고 정의할 수 있는 태그이다.width=device-width
라는 것은 사용 중인 장치의 뷰포트의 너비를 동일하게 설정해준다.initial-scale=1
은 뭐,,초기 값을 1로 설정???🤔 src="https://kit.fontawesome.com/2d323a629b.js"
: 토글과 같은 이미지 관련 js로 이에 해당하는 코드를 제공해 준다. 여기서 저 링크를 넣기만 하면 fontawesome에 나와 있는 태그들을 사용할 수 있다.-
crossorigin="anonymous"
: audio, img, link, script, video 요소에서 유효하게 적용되며 element의 CORS 요청의 credential flag 가 same-origin으로 지정…(뭔소린지 모르겠지만 일단 적어놈) === 위와 동일하게 이 분의 fontawesome 코드에 해당된다. 내 코드는<script src="https://kit.fontawesome.com/7ca999eb17.js" crossorigin="anonymous"></script>
이거다. - css 파일과 연결하는 태그 link 태그
- js 파일과 연결하는 태그 script 태그 (원래 script를 사용했지만, 이렇게 사용될 줄은 몰랐음,,ㅎ)
css 파일
- .navbar의 아이템들은 로고, ul태그, 사진 이렇게 크게 3가지고 나뉜다. 얘네들을
justify-content: space-between;
을 사용해서 3가지 아이템들 사이의 간격이 균일해지도록 만들었다. justify-content 는 아이템들의 가로를 설정한다고 생각하면 될 것 같다.align-items: center
를 사용해서 아이템들을 컨테이너 중간에 위치할 수 있도록 하였다. align-items 는 각 아이템들의 위치를 컨테이너 기준 세로를 설정한다고 생각하면 될 것 같다.padding: 8px 12px;
라고 나와있는 것은 top/bottom은 8px, right/left는 12px로 설정한다는 의미이다. - .navbar_menu의 아이템들은 ul태그 안에 있는 리스트들이다.
list-style: none;
이라는 것은 ul태그라서 생기는 그 앞의 점이 없어짐!!!!! - .navbar_toogleBtn에서의
display: none;
은 일단 @media 조건이 아니면 없다가 조건에 해당된다면 다시 나타남. 다시 나타나는 것도 none의 기능의 아니라display: block;
처리를 해준다면 @media 조건에 해당 되었을 때, 나타남
js 파일
addEventListener()
라는 메서드를 봤는데,,,지금 만들면서 어떻게 적용시킬지를 보는 중.
alcoHeader 만들어보기
- 폰트어썸 불러오기:
<script src="https://kit.fontawesome.com/7ca999eb17.js" crossorigin="anonymous"></script>
를 적었는데도, 일부 아이콘이 불러지지 않아서 css파일에
1 2 3 4 5 | *::before { font-family: "Font Awesome 5 Free"; font-weight: 900; margin-right: 10px; } | cs |
이와 같이 추가해주었더니 성공!
See the Pen alcoHeader by sohnsookyoung (@sohnsookyoung) on CodePen.
css, html 관련은 많이 알았지만 js관련해서 아직 적용이 어려웠다. 왜나하면 addEventListener도 뭔지 잘 모르겠고, classList.toggle(‘클래스명’) 이것도 뭔지 잘 모르겠다. 하지만 classList.add, classList.remove와 같은 기능이 있고, add는 클래스(css 이름)의 기능을 추가하고, remove는 클래스의 기능을 지운다. toggle은 add와 remove의 중간인 on/off의 기능을 한다. 그래서 토글 버튼을 눌렀을 때, 메뉴창이 나왔다가 다시 클릭하면 지워지는 것이다.
헤더에서의 추가사항
- 토글에 대해서 좀 더 공부해 볼 것. active?
- HIT THE 메뉴를 눌렀을 때, 밑에 또다른 메뉴를 나오게 하기
See the Pen intro ver1 by sohnsookyoung (@sohnsookyoung) on CodePen.
수정사항
- 헤더
- grid -> flex
- @media 적용될 때, 화면 모습
문제점
- 헤더 js 문제
- @media 적용될 때, .main 아이템 중앙 정렬 적용 X
다음 진행 예정
- 제이쿼리 공부를 통해서 사진 추가와 관련된 기능 있나 보기
- 제이쿼리 + Node.js 이용해서 폴더에 이미지만 추가하면 알아서 적용이 되도록 해보기
댓글남기기