React.js - k821209/pipelines GitHub Wiki

starting react.js

# node.js ๊ฐ€ ์„ค์น˜๋˜์–ด์•ผํ•จ 
> node -v 
# npm ์ด ์„ค์น˜๋˜์–ด์žˆ์„๊ฒƒ 
# npx ๋ฅผ ์„ค์น˜ํ•ด์•ผํ•จ 
> npm install npx -g # global install๋กœ npx๋ฅผ ์„ค์น˜ํ•จ 
# ์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ 
> npx create-react-app {appName} 
# VSC๋กœ ์—ด๊ธฐ
> code {appName}
# ๊ธฐ๋ณธ ํŒŒ์ผ ๊ด€๋ฆฌ 
# package.json 
## scripts ์˜ test, eject๋Š” ์‚ญ์ œ 
# ํ…Œ์ŠคํŠธ ์‹คํ–‰ 
> npm start 
# git ๋ถ™์ด๊ธฐ
> git init
> ๋“ฑ๋“ฑ
  • ์ดˆ๊ธฐ ์…‹์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด
# index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';


ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);
# app.js
import React from 'react';

function App() {
  return (
    <div className="App">
    </div>
  );
}

export default App;
# prop-types install : ์ปดํฌ๋„ŒํŠธ๋“ค์˜ props์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๋„์šฐ๋ฏธ ํˆด... ์ฝ”๋”ฉ์ด ๋‚œ์žกํ•ด์ง€๋ฉด ๊ผญ ์จ์•ผํ• ๋“ฏ 
npm i prop-types # ์„ค์น˜ํ•˜๊ฒŒ ๋˜๋ฉด packages.json ์ด ์—…๋ฐ์ดํŠธ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ 
# prop-types ํ™œ์šฉ
import PropTypes from 'prop-types';
Food.propTypes = {                    # Food๋Š” ์ •์˜ ๋˜์–ด ์žˆ๋Š” ํ•จ์ˆ˜(์ฝคํฌ๋„ŒํŠธ) ์ž„. 
   name = PropTypes.string.isRequired
   age  = PropTypes.string.isRequired # ์ด๋Ÿฐ์‹์œผ๋กœ Prop์— ๋“ค์–ด๊ฐ€๋Š” ๋ณ€์ˆ˜๋“ค์˜ ์„ฑ๊ฒฉ ๋ฐ ํ•„์ˆ˜ ์—ฌ๋ถ€๋ฅผ ๋ฏธ๋ฆฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ 
                                      # Warning์„ ๋ฟœ๋Š”๋‹ค. 
}
  • ๊ธฐ๋ณธ๊ฐœ๋…
# potato.js
import React from 'react';

function name(){  # component์ด๋ฆ„์ด ๋จ ํ–ฅํ›„ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋Š” html๋ฌธ๋ฒ•์ด ๋“ค์–ด๊ฐ€๋Š” ๊ณณ์—์„œ <name /> ์‹์œผ๋กœ ์‚ฝ์ž…์ด ๋œ๋‹ค. 
    return(  # ์—ฌ๋Ÿฌ์ค„์ด ๋“ค์–ด๊ฐˆ ๊ฒฝ์šฐ ๊ด„ํ˜ธ๋ฅผ ์—ด์–ด์ฃผ๊ณ , ํ•œ์ค„์ผ ๊ฒฝ์šฐ์—๋Š” ๊ด„ํ˜ธ๊ฐ€ ์—†์–ด๋„ ๋œ๋‹ค. 
        <h1>Hello</h1># ์—ฌ๊ธฐ์—๋Š” HTML ๋ฌธ๋ฒ•์ด ๋“ค์–ด์˜จ๋‹ค.    
    ) 
}

export default name; # App.js ์™ธ์— ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ์— App.js์—์„œ ๋ถˆ๋Ÿฌ์„œ ์“ฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” export๋ฅผ ํ•ด์ค˜์•ผํ•จ 
# App.js 

import React from 'react';

function Food(props){ # ์—ฌ๊ธฐ์„œ props ๊ฐ€ json๋ชจ์–‘์˜ ๋ฐ์ดํ„ฐ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๊ณ  keys๋ฅผ ์•Œ๊ณ  ์žˆ๊ณ  ๊ทธ์ค‘์˜ ์ผ๋ถ€๋งŒ ์“ธ๋•Œ
                      # ์˜ˆ๋ฅผ ๋“ค์–ด fav ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด props ๋Œ€์‹ ์— {fav} ๋ผ๊ณ  ์ž…๋ ฅํ•ด๋†“์œผ๋ฉด props ์˜ fav ์˜ value๋งŒ
                      # ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. return ์—์„œ fav๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅ 
                      # props ์—๋Š” ๊ผญ key๋ฅผ ๋งŒ๋“ค์–ด์ค˜์•ผ ์—๋Ÿฌ๊ฐ€ ์•ˆ๋‚จ
    return (
        console.log(props)
        <h1>hello {props.fav} </h1> # props ๋ฅผ htmlํ‘œํ˜„ ๋‹จ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” {} ๋กœ ๋ณ€์ˆ˜๋ช…์„ ๋ฌถ์–ด์ฃผ๋ฉด๋จ. 
    ) 
}

function App(){
    return (
        <div><Food fav='kimchi' boy={true} /></div>  # Food component๋‹ค์Œ์— ๋“ค์–ด๊ฐ€๋Š” fav ๋“ฑ๋“ฑ์„ property๋ผ๊ณ  ๋ถ€๋ฆ„ ์ค„์—ฌ์„œ props ๋ผ๊ณ  ํ•จ. ์ด๊ฒƒ์€ Food component์˜ ์ผ์ข…์˜ parameter๋กœ ๋“ค์–ด๊ฐ€๋ฉฐ json ํ˜•์‹์˜ object๋กœ ๋“ค์–ด๊ฐ€๋Š”๊ฒƒ์„ console.log(props) ๋กœ ํ™•์ธ ๊ฐ€๋Šฅ 
)
{
  • ๊ธฐ๋ณธ๋ฌธ๋ฒ•
const certainArray = [1,2,3,4]
certainArray.map(function) # array ํ˜•์‹์— ๋ฐ”๋กœ map ๋ฉ”์„œ๋“œ๊ฐ€ ๋“ค์–ด์žˆ์Œ. ๊ด„ํ˜ธ์•ˆ์— ํ•„์š”ํ•œ ํ•จ์ˆ˜๋ฅผ ๋„ฃ์œผ๋ฉด ๊ทธ๋งŒ์ž„. 
                           # ๊ด„ํ˜ธ์•ˆ์— function(){return calc} ๋กœ ์ง„ํ–‰ํ•˜๋ฉด return์˜ output ์œผ๋กœ array๊ฐ€ ์ƒ์„ฑ
                           # function ํ‘œํ˜„์€ ES6 ()=>{} ๊ฐ€๋Šฅ  
# ngrok ์„ค์น˜. ์ €๋ ‡๊ฒŒ ์•ˆํ•˜๋ฉด ์—๋Ÿฌ๋‚จ. 
$ npm install -g ngrok --unsafe-perm=true --allow-root
$ ngrok http 3000 # port 3000์ธ ๊ฒฝ์šฐ 
$ npx create-react-app weather

๋ฐฐํฌ

$ apt update
$ cd react_apps/
$ apt install git
$ git clone https://github.com/k821209/rnaseq_app.git
$ apt install -y npm nginx vim systemctl
$ npm install react-scripts
$ npm run build
$ rm /etc/nginx/sites-available/default
$ rm /etc/nginx/sites-enabled/default
$ cd /etc/nginx/sites-available/
$ touch app.conf
$ vi app.conf
$ ln -s /etc/nginx/sites-available/app.conf /etc/nginx/sites-enabled/app.conf
$ systemctl stop nginx
$ systemctl start nginx
# app.conf
server {
  listen 8000;
  location / {
    root   /react_apps/rnaseq_app/build;
    index  index.html index.htm;
    try_files $uri $uri/ /index.html;
  }
}         
โš ๏ธ **GitHub.com Fallback** โš ๏ธ