VisualStudio Code 를 이용하여 React 로 조그만 예제를 만들면서 정리한 내용...
개인적인 정리 내용입니다.
React 를 생성하려면 WebPack이 필요하고 별도의 설정이 필요하지만 대신
facebook 에서 만든 Create-React-App 을 사용하면
별도의 WebPack 설치와 설정없이도 React 를 개발 할 수 있다.
npm install -g create-react-app
create-react-app movie-app 은 Terminal 에서 실행하는 것이 좋다.
VS Code 에서 실행 시 Error 가 발생한다.
cd movie-app
vscode terminal 에서
npm start
port 를 바꾸고 싶을 때는
"PORT=4000 npm start"
를 입력한다.
propTypes
propTypes 변수에 담아야 한다.
static propTypes = {
title:PropTypes.string.isRequired,
image:PropTypes.string.isRequired
}
React Life Cycle
Render : componentWillMount() => render() => componentDidMount()
Update : componentWillReceiveProps() => shouldComponentUpdate() = true => componentWillUpdate() => render() => componentDidUpdate()
State 는 state 배열에 담아야 한다.
state 를 변경할 때는
this.setState({greeting : 'woojja'}) 와 같이 setState 를 사용하여 값을 변경
state 를 변경하면 render 가 다시 실행된다.
movies : [
{
id:16,
title:'transformer',
poster:'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSsdR9axnghll6mVM3Yae1r7Il0A8yGc_JJynAiH_fCXwSANcRj'
},
...this.state.movies // '...' : 기존의 Data 를 유지한다는 의미
]
smart component, dumb component
class component (smart component) : state 를 가짐.
class Movie extends Component{
render() {
return(
...
);
}
}
functional component (dumb component) : state 를 가지지 않는다. Life cycle, render function 도 없고 Props 만 가지며
단순 Return 만 존재한다.
function MoviePoster({image, title}){
return(<img src={image} alt={title + ' Poster'} />);
}
functional component 의 Validation Check
MoviePoster.PropTypes = {
poster : PropTypes.string.isRequired
}
Promise : 새로운 Concept (Asynchronous programming)
=> arrow function 에는 return 의미가 포함되어 있음.
www.npmjs.com/package/react-lines-ellipsis
npm install --save react-lines-ellipsis
import LinesEllipsis from "react-lines-ellipsis"
npm run build
39.99 KB build/static/js/main.47ccf7c1.js
706 B build/static/css/main.a3112408.css
압축해서 build folder 에 넣음.
Package.json 에 아래 구문을 추가
"homepage" : "https://github.com/iPeterPan/react_movie_app",
변경했으니 다시한번
npm run build
Install gh-pages and add deploy to scripts in package.json
npm install --save gh-pages
Package.json 에 아래 구문을 추가
"predeploy": "npm run build",
"deploy": "gh-pages -d build"
특정 branch 를 deploy 하려면
"deploy": "gh-pages -b master -d build",
The predeploy script will run automatically before deploy is run.
If you are deploying to a GitHub user page instead of a project page you'll need to make two additional modifications:
First, change your repository's source branch to be any branch other than master.
Additionally, tweak your package.json scripts to push deployments to master:
Deploy the site by running npm run deploy
npm run deploy
Ensure your project’s settings use gh-pages
Finally, make sure GitHub Pages option in your GitHub project settings is set to use the gh-pages branch:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject",
"predeploy": "npm run build",
"deploy": "gh-pages -b master -d build -repo https://github.com/iPeterPan/react_movie_app.git"
}
행복한 고수되셔요... ^^
woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
'Web > React' 카테고리의 다른 글
[React] React for ECommerce Site with Redux 1 (0) | 2020.01.30 |
---|---|
[Web/React] React info ... (0) | 2020.01.29 |
[React] npm packages and Database info in blog site (0) | 2019.12.19 |