React 를 신속하게 구축 하 는 환경 절차 에 대한 상세 한 설명

9295 단어 React환경.
전단 생태 는 요 몇 년 동안 큰 발전 을 이 루 었 다 고 할 수 있다.이 생태 권 에서 새로운 사물 을 받 아들 이지 않 고 새로운 기능 을 배 우 는 것 은 마도 에 빠 진 것 과 같다.
본 고 는 전단 개발 이기 React 와 프로젝트 구축 과정 에서 관련 된 기술 스 택 을 소개 하여 전체 구축 절차 에 대한 사 고 를 시작 하려 고 한다.
한 가지 일의 원 리 를 알 아 내 려 면 그 목적 이 무엇 인지 먼저 알 아야 한 다 는 점 을 지적 할 필요 가 있다.
1、Nodejs & NPM
왜 nodejs 얘 기 를 해요?
nodejs 는 서버 개발 의 또 다른 가능성 을 제공 하기 보 다 는 전체 전단 개발 의 생태 를 철저하게 바 꾸 었 다.nodejs 플랫폼 에서 강력 한 npm,grunt,express 등 이 파생 되 어 전단 의 작업 절차 와 개발 방식 을 거의 새롭게 정의 했다.
NPM(node package manager)이라는 패키지 관리 자 를 말씀 드릴 필요 가 있 습 니 다.
npm 는 javascript 패키지 관리자 입 니 다.우 리 는 npm 에서 수많은 개발 자 들 이 기여 한 코드 패 키 지 를 찾 고 공유 하 며 사용 할 수 있 습 니 다.스스로 바퀴 를 만 들 필요 가 없습니다.
npm 를 사용 하려 면 node 를 설치 해 야 합 니 다.새로운 버 전의 nodejs 는 npm 를 통합 하여 nodejs 를 설치 하고 다음 명령 을 통 해 설 치 된 버 전 을 봅 니 다.

$ npm -v
프로젝트 디 렉 터 리 에서 명령 행 에서 실행 할 때

$ npm install
패키지 제 이 슨 이라는 파일 을 식별 하고 이 파일 에 설 치 된 의존 패 키 지 를 설치 하려 고 시도 합 니 다.
2、React
React 의 구성 화 사상 으로 인해 코드 의 중용 성 이 높 고 테스트 하기 쉬 우 며 관심 사(separation of concerns)를 분리 하기 쉽다.
리 액 트 는 또 Learn Once,Write Anywhere 를 선언 했다.클 라 이언 트 브 라 우 저 에서 실행 할 수 있 고 서버 에서 렌 더 링 할 수 있 으 며 React Native 는 React 개발 원생 app 을 가능 하 게 합 니 다.
다음 에 실행 할 수 있 도록 간단 한 React 프로그램 을 쓰 겠 습 니 다.
프로젝트 디 렉 터 리:

첫 번 째 단계:패키지.json 파일 을 새로 만 들 고 프로젝트 에 필요 한 의존 패 키 지 를 지정 합 니 다.

{
 "name": "react-tutorials",
 "version": "1.0.0",
 "description": "",
 "author": "yunmo",
 "scripts": {
   "start": "webpack-dev-server --hot --progress --colors --host 0.0.0.0",
   "build": "webpack --progress --colors --minimize"
  },
 "dependencies": {
   "react": "^15.4.0",
   "react-dom": "^15.4.0"
 },
 "devDependencies": {
   "webpack": "^2.2.1",
   "webpack-dev-server": "^2.4.2"
 },
 "license": ""
}
이것 은 npm 패키지 관리자 의 필수 파일 로 이 프로젝트 의 이름,버 전,시작 명령,생산 환경 의존 패키지(dependencies)와 개발 환경 의존 패키지(devDependencies)를 정의 합 니 다.
두 번 째 단계:index.html 파일 을 새로 만 듭 니 다.

<!doctype html>
<html lang="en">
 <head>
   <meta charset="utf-8">
   <title>yunmo</title>
   <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"/>
 </head>
 <body>
 <div id="yunmo"></div>
 <script src="bundle.js"></script>
 </body>
</html>
세 번 째 단계:간단 한 React 코드 를 쓰 세 요.

var React = require('react');
var ReactDOM = require('react-dom');

var element = React.createElement(
 'h1',
 {className: 'yunmo'},
 '  ,    react   !'
 );

ReactDOM.render (
 element,
 document.getElementById('yunmo')
);

STEP 4:실행.
그렇다면 브 라 우 저 에서 어떻게 실행 합 니까?강력 한 웹 팩-dev-server 를 통 해 로 컬 서버 를 열 어야 합 니 다.
위 에 있 는 package.json 에는 웹 팩 과 웹 팩-dev-server 의존 패키지 가 있 습 니 다.다음은 웹 팩 을 소개 하 겠 습 니 다.
물론 nodejs 를 통 해 로 컬 서버 를 만 들 수 있 지만,웹 팩-dev-server 는 작은 nodejs Express 서버 로 웹 팩-dev-middleware 미들웨어 미들웨어 를 사용 하여 웹 팩 패키지 에 서 비 스 를 제공 합 니 다.
webpack.config.js 파일 설정 은 다음 과 같 습 니 다.

var webpack = require('webpack');

module.exports = {
 entry: ['./app/main.js'],
 output: {
  path: __dirname + '/build',
  filename: 'bundle.js'
 },
 module: {
  loaders: []
 }
}

이렇게 하면 우 리 는 명령 행 에서 npm install 을 통 해 의존 패 키 지 를 설치 한 후에 명령 을 두 드 립 니 다.

$ npm start
서비스 실행 후 브 라 우 저 에 입력http://localhost:8080/

React 브 라 우 저 실행 결과
간단 한 React 프로젝트 가 실행 되 기 시작 했다.
3、Webpack
웹 팩 은 현대 자바 스 크 립 트 응용 모듈 로 딩 및 포장 도구 입 니 다.자바 스 크 립 트 뿐만 아니 라 styles,images 등 자원 도 포장 할 수 있 습 니 다.
전형 적 인 웹 팩 설정 보기:

var webpack = require('webpack');
var path = require('path')

module.exports = {
 entry: ['./app/main.js'],
 output: {
  path: path.resolve(__dirname, '/build'),
  filename: 'bundle.js'
 },
 module: {
  loaders: [
   {
    test: /\.js$/,
    exclude: /node_modules/,
    loader: 'babel-loader'
   },
   {
    test: /\.scss$/,
    loaders: ["style-loader", "css-loader", "sass-loader"]
   },
   {
    test: /\.(otf|eot|svg|ttf|woff|png|jpg)/,
    loader: 'url-loader?limit=8192&name=images/[hash:8].[name].[ext]'
   }
  ]
 },
 plugins: [
  new webpack.optimize.UglifyJsPlugin()
 ]
}

위의 웹 팩 설정 에서 기본 적 인 설정 점 을 알 수 있 고 웹 팩 의 네 가지 이념 도 나 타 냈 습 니 다.
4.567917.entry―webpack 은 응용 의존 관계 에 따라 관계 표를 만 듭 니 다.이 표 의 시작 점 은 이른바 entry point(입구 점)이다.entry point 는 웹 팩 이 어디서 시작 하 는 지 알려 줍 니 다.웹 팩 은 이 표 의 의존 관 계 를 포장 근거 로 합 니 다
  • output―포장 후의 파일 배치 경 로 를 설정 하 는 데 사용 합 니 다
  • loader―webpack 은 모든 파일 을 구성(예 를 들 어.css,.html,.scss,.jpg,.png 등)으로 간주 하지만 웹 팩 은 자 바스 크 립 트 만 식별 할 수 있 습 니 다.이때 loaders 는 이 파일 들 을 구성 으로 변환 하여 의존 관계 표 에 추가 할 수 있 습 니 다
  • plugins―loaders 의 역할 방식 은 단일 파일 을 바탕 으로 하기 때문에 plugins 는 포장 구성 으로 형 성 된 집합(copilations)에 대해 사용자 정의 작업 을 하 는 데 더욱 광범 위 하 게 사용 된다
  • 이렇게 해서 완전한 모듈 포장 체계 가 세 워 졌 다.
    4、ES6
    ES6,즉 ECMAScript 6.0 은 자 바스 크 립 트 의 차세 대 표준 이다.ES6 에는 복잡 한 응용 프로그램 을 더욱 우아 하고 자 연 스 럽 게 만 드 는 문법 적 특성 이 많이 추가 되 었 다.
    ES6 에 let 와 const,화살표 함수,할당 해제,문자열 모드,Module,Class,Promise 등 특성 을 도입 하여 앞 뒤 프로 그래 밍 언어 가 문법 형식 에서 의 차이 가 점점 작 아 집 니 다.
    우리 한번 봅 시다.
    
    import React from 'react'  //    
    
    import '../styles/reactStack.scss'
    
    class ReactStack extends React.Component { //class  
    
     render() {
      const learner = {name: '  ', age: 18} //const    
      const mainSkills = ['React', 'ES6', 'Webpack', 'Babel', 'NPM',]
      const extraSkills = ['Git', 'Postman']
      const skillSet = [...mainSkills, ...extraSkills]
      const { name } = learner  //    
      let greetings = null  //let    
      if (name) {
       greetings = `${name},    ${mainSkills[0]}   !` //    
      }
      //        
      return (
       <div className="skills">
        <div>{greetings}</div>
        <ol>
         {skillSet.map((stack, i) => <li key={i}>{stack}</li>)}
        </ol>
       </div>
      )
     }
    }
    
    export default ReactStack  //    
    
    
    물론 모든 브 라 우 저가 ES6 의 모든 특성 을 호 환 할 수 있 는 것 은 아니 지만,이렇게 우아 한 쓰기 방식 을 보면 어떻게 볼 수 있 겠 는가?그래서 여기 또 하나의 신기,바벨!
    5、Babel
    바벨 은 자 바스 크 립 트 컴 파일 러 다.
    Babel 은 ES6 문법 코드 를 ES5 코드 로 변환 하여 브 라 우 저 환경 에서 호 환 할 수 있 습 니 다.
    Babel 은 JSX 에 대한 지원 이 내장 되 어 있 기 때문에 우 리 는 위 에서 처럼 JSX 형식의 코드 세 션 을 직접 return 할 수 있 습 니 다.
    구체 적 인 용법 은 본문 에서 지나치게 서술 하지 않 는 다.
    6.Styles 도입
    위의 코드 에는 다음 과 같은 스타일 도입 방식 이 있 습 니 다.
    
    import '../styles/reactStack.scss'
    스타일 파일 은 다음 과 같 습 니 다:
    
    body {
     background: #f1f1f1;
    }
    
    .skills {
     h3 {
      color: darkblue;
     }
     ol {
      margin-left: -20px;
      li {
       font-size: 20px;
       color: rgba(0, 0, 0, .7);
       &:first-child {
        color: #4b8bf5;
       }
      }
     }
    }
    
    
    스타일 파일 은 프로젝트 에서 역할 을 하려 면 package.json 에 해당 하 는 loader 의존 도 를 추가 해 야 합 니 다.예 를 들 어 css-loader,sas-loader,style-loader 등 은 package.json 에 node-ass 의존 이 필요 하 다 는 것 을 잊 지 말고 설치 하면 됩 니 다.
    webpack.config.js 에 해당 하 는 설정 은 다음 과 같 습 니 다.
    
    module: {
     loaders: [
      {
       test: /\.js$/,
       exclude: /node_modules/,
       loader: 'babel-loader'
      },
      {
       test: /\.scss$/,
       loaders: ["style-loader", "css-loader", "sass-loader"]
      }
     ]
    }
    
    main.js 의 내용 을 다음 과 같이 변경 합 니 다.
    
    import React from 'react'
    import ReactDOM from 'react-dom'
    import ReactStack from './pages/ReactStack'
    
    ReactDOM.render (
     <ReactStack />,
     document.getElementById('yunmo')
    );
    
    
    마지막 으로 브 라 우 저 에서 볼 수 있 습 니 다:

    결어
    이로써 간단 한 React 프로젝트 가 세 워 졌 다.
    후속 적 인 글 에서 저 는 본 고 에서 언급 한 React 기술 창고 에 대해 전문 적 인 설명 을 할 것 입 니 다.딱딱 한 기능 에 만 국한 되 는 것 이 아 닙 니 다.물론 더 많은 것 은 실천 방법 에 대한 정리 이다.그들의 이론 을 파악 하려 면 공식 문서 와 소스 코드 를 자세히 보 는 것 이 가장 좋 은 방법 이기 때문이다.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기