1. 程式人生 > >React實戰-如何快速建立除錯一個Demo程式

React實戰-如何快速建立除錯一個Demo程式

React實戰-如何快速建立除錯一個Demo程式

React是單一頁面程式,因此需要我們在建立React專案時需要做很多配置、解析等工作,嚴重影響著我們在編寫demo時的情緒和效率。

通常的方式我們需要做以下幾步(微信公眾號:react-javascript):

1. 建立配置檔案package.json

定義專案所需的React程式包:

{

  "name": "routerdemo",

  "version": "0.0.1",

  "private": true,

  "devDependencies": {

    "react-scripts": "^0.4.0"

  },

  "dependencies": {

    "react": "^15.3.0",

    "react-dom": "^15.3.0",

    "react-redux": "^4.4.5",

    "react-router": "^2.6.1",

    "react-router-redux": "^4.0.5",

    "redux": "^3.5.2",

    "redux-undo": "^1.0.0-beta9"

  },

  "scripts": {

    "start": "react-scripts start",

    "build": "react-scripts build",

    "eject": "react-scripts eject"

  },

  "eslintConfig": {

    "extends": "./node_modules/react-scripts/config/eslint.js"

  }

}

2. 定義專案檔案結構: 精簡到index.htmlsrc/app.jsassert/bundle.js(解析後的js檔案)

3. 定義解析打包原始檔為bound.js的腳本,執行web頁面

光以上3步就讓我們非常頭疼,尤其是第三步,我們需要解析專案中js原始檔,打包成一個檔案bundle.js,還需要建立一個web應用支撐我們訪問。

4.通過React-Scripts進行除錯

幸運的是,在react相關包中,存在一個

react-scripts的包能夠幫助我們輕鬆完成第三步,我們只需要做以下幾件事,並滿足一下規則即可方便除錯。

config中引入react-scripts

"devDependencies": {

    "react-scripts": "~0.4.0"

  },

"eslintConfig": {

    "extends": "./node_modules/react-scripts/config/eslint.js"

  }

config中加入執行腳步

"scripts": {

    "start": "react-scripts start",

    "build": "react-scripts build",

    "eject": "react-scripts eject"

  }

好了,我們以後再測試時,只需要允許npm start即可了,方便太多了。

必須要注意的是:

l html檔案必須為index.html

入口js檔名必須為index.js

如果不遵守上述兩點,你的解析是不成功的。

5.分析React-Scripts原始碼瞭解執行原理

採用React-scripts省去了我們太多事情,但是總還是會好奇,它到底幹了什麼,我們不能只知道使用規則,而不知原理。看看React-scripts的專案配置檔案,我們知道它只是幫我們做了我們自己編寫指令碼的工作:採用webpack進行原始碼解析,至於為什麼必須使用index.htmlindex.js檔名,以下兩段配置檔案說明了原因:

React-scriptspath檔案中appHtml: resolveApp('index.html')

React-scriptswebpack.config中:path.join(paths.appSrc, 'index')

在明白了React-scripts的原理情況下,採用npm start命令即可除錯專案了,並且在修改原始碼時,能理解反應在執行程式裡。不再為實現個HelloWorld程式煩惱了。