react

2022. 7. 24. 03:39js

html : 하이퍼 텍스트 마크업 랭기지 (데이터를 처리하는 추가정보를 의미하는 마크업, 이를 다루는 언어는 마크업언어)

 

요소:시작태그<>~</>끝태그(혹은 끝태그 없음)

태그:<> hi </> 양 끝 <>

속성:<id={xx} className={xx} onclick={xx} >    태그안에 들어가는 정보

<html> :html표시의 시작과 끝

<head>:웹사이트에 대한 설명,제목,소개등 여러가지 속성들(=메타데이터 )을 담는 태그 

 

<body> :실제 웹사이트 컨텐츠

 

 

multi page application: 여러 html존재, 사용자요청에 따라 새로운 페이지 로딩 

 

single page application (SPA) 

단 하나의 page(html파일) 존재

body태그의 내용은 빈 상태로 시작

특정 페이지 접속시 해당 컨텐츠의 정보를 가져와서 동적으로 body태그 내부를 채움 <-react 역할

 

출처:소플

 

css: cascading style sheet

웹사이트 레이아웃,글꼴,색상,디자인등을 입히는 역할 

 

 

npm :노드 패키지 매니저

노드js와 함께 설치, 다양한 외부패키지 버전 설치,삭제 및 관리용

 

실행이 안될때 

npm update
npm start
yarn upgrade
yarn start

 

 

IDE (Integrated Devrlopment Environment)

통합개발환경 -e.g VScode

자동정렬,함수참조 찾기등 부가적 기능 제공

 

creat-react-app (cra)

react개발에 필요한 모든 설정이 된 상태로 프로젝트 생성

공식문서: reactjs.org/docs/create-a-new-react-app.html

 

npx : npm이후 곧바로 실행까지 

 

npm init react-app . 

.는 현재 경로로 create-react-app을 통해 생성

 

npm run start

개발모드 실행

프로젝트 시작, 파일수정시 반영

 

터미널 on/off ctrl+백틱

터미널 Crrl+c 개발모드 종료

 

 

 

react developer tools

크롬확장프로그램 , 리액트 구조보기

 

 

 

index.html

최초 1번 실행하는 페이지 파일

 

 

index.js

index.html 이후 실행되는 파일,리액트 코드 중 가정 먼저 실행되는 파일

 

 

reactDOM.render <-화면을 그린다(html태그를 만든다, <h1> </h1>태그를 인수로 전달, JSX문법 )

 

 

document.getElementById('root') DOM요소 중에서  id속성이 root인 가진 요소를 가지고  온다 

 

 

reactDOM.rennder(<h1> hi</h1>,document.getElementById('root') ) 

첫번째 인자로 생성한 html요소를 두번째인자에 집어넣는 방식으로 동작,

id속성이 root인 div태그가 index.html에 있음

 

 

 

 

 

JSX :간결함,가독성,유지보수,보안

(인젝션 어택 방어,xss)-랜더링전 임베디드된 값을 모두 문자열로 변환

 

 JS확장문법(JS+XML/HTML)

 

xml/html코드를 최종적으로 JS코드로 변환 (JSX는 모두 내부적으로 createElement함수를 거쳐 변환)

 

React.createElement(

    type,            //엘리먼트의 유형,타입-div,span같은 html태그 or 리액트 컴포넌트

    [props],     //속성들

    [....children]    //현재 엘리먼트가 포함하는 자식 엘리먼트(내용들?)

)

출처:소플

 

출처:소플

 

 

 

 

 

1.카멜케이스 사용 (onClick,.....)

 

2.JS예약어로 사용중인 속성명을 대체(for > htmlFor,  class>className   )

 

3.반드시 하나의 요소로 감쌀 것 <Fragment> </Fragment> or <> </>

 

4. 중괄호{}를 사용하면 JS표현식을 JSX내에 요소나 속성값으로 사용가능

 

태그의 속성(attribute)에 값 넣는 방법

큰 따옴표 사이에 문자열 넣기

const element = <div tabIndex="0"></div>;

 or 중괄호 사이에 자바스크립트 표현식 삽입

const element = <img src={user.avatarUrl}></img>;

 

<h1>{product} + ' ' + {model} 주문하기</h1>

<img src={imageUrl} alt="제품 사진" />

 

<button onClick={handleClick}>확인</button>

<h2>{getResult(me,other)}</h2>

//return이 있는 메서드getResult는 ()인자표시를 하고 return없이 alter만 하는 handleClick은 ()인자표시 없이 쓰나?

 

 

 

 

 

 

 

'js' 카테고리의 다른 글

Node.js  (0) 2024.04.15
import/export  (0) 2024.03.16
react 1.엘리먼트  (0) 2022.07.24
아나콘다 환경설정  (0) 2022.06.07
미니프로젝트 2.0  (0) 2022.05.22