• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

    react.js使用webpack搭配環(huán)境的入門教程

    來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:32:45
    文檔

    react.js使用webpack搭配環(huán)境的入門教程

    react.js使用webpack搭配環(huán)境的入門教程:本文介紹了react.js使用webpack搭配環(huán)境的入門教程,分享給大家,也給自己做個(gè)筆記 如果你想直接上手開發(fā),而跳過這些搭配環(huán)境的繁瑣過程,推薦你使用官方的create-react-app命令 npm install -g create-react-app //安裝create-re
    推薦度:
    導(dǎo)讀react.js使用webpack搭配環(huán)境的入門教程:本文介紹了react.js使用webpack搭配環(huán)境的入門教程,分享給大家,也給自己做個(gè)筆記 如果你想直接上手開發(fā),而跳過這些搭配環(huán)境的繁瑣過程,推薦你使用官方的create-react-app命令 npm install -g create-react-app //安裝create-re

    本文介紹了react.js使用webpack搭配環(huán)境的入門教程,分享給大家,也給自己做個(gè)筆記

    如果你想直接上手開發(fā),而跳過這些搭配環(huán)境的繁瑣過程,推薦你使用官方的create-react-app命令

    npm install -g create-react-app //安裝create-react-app腳手架 npm為node.js的包管理工具,請(qǐng)確保你已經(jīng)安裝了node.js
    create-react-app my-app //使用create-react-app創(chuàng)建,my-app為項(xiàng)目名稱
    cd my-app/ //進(jìn)入my-app目錄
    npm start //運(yùn)行項(xiàng)目

    現(xiàn)在打開 http://localhost:3000/ 就能看到初始界面

     我不大愿意使用官方自帶這個(gè)腳手架,是因?yàn)樗膚ebpack配置太復(fù)雜,我比較愚鈍看不大懂,還望有大神能研究透徹分享一下。

    要如何create-react-app內(nèi)部的webpack配置文件解壓出來?

    npm run eject

    源代碼

    每次看教程我都喜歡先把項(xiàng)目跑起來,然后再一句一句代碼地去了解。如果你也是:

    git clone https://github.com/lingjiawen/HelloReact.git
    cd HelloReact/
    npm install
    npm run dev

    一、創(chuàng)建項(xiàng)目結(jié)構(gòu)

    新建一個(gè)文件夾,命名為HelloReact

    順口提一下,我用的IDE是Sublime

    在該文件夾內(nèi)這樣組織你的項(xiàng)目結(jié)構(gòu):

    |--app //項(xiàng)目組件
     |--components //組件結(jié)構(gòu)
     |---Hello.jsx
     |--main.js //入口文件
    |--build //項(xiàng)目build文件
     |--index.html //索引html
    |--.babelrc //babel轉(zhuǎn)碼工具配置文件
    
    |--package.json //npm說明文件,可以理解為包管理文件
    |--webpack.config.js //webpack配置文件
    

    在build/index.html中拷貝以下代碼:

    <!DOCTYPE html>
    <html>
     <head>
     <meta charset="UTF-8">
     <title>ReactDemo1</title>
     </head>
     <body>
     <!--插入React組件的位置-->
     <div id="main">
     </div>
     <script src="bundle.js"></script>
     </body>
    </html> 

    React代碼插入到main中,而bundle.js是webpack打包生成的js文件,在這里你可以先幫它記下來下文看到了再回來一看就清楚了。

    在package.json中輸入以下代碼:

    注意,所有的注釋都不要輸入進(jìn)去!

    //package.json
    {
     "name": "HelloReact", //項(xiàng)目名字
     "version": "1.0.0", //項(xiàng)目版本
     "main": "webpack.config.js", 
     "scripts": {
     "start": "webpack", //npm start的配置
     },
     "author": "", //作者
     "license": "ISC",
     "devDependencies": {
     //調(diào)試依賴項(xiàng)
     "babel-core": "^6.25.0",
     "babel-loader": "^7.1.1",
     "babel-plugin-react-transform": "^2.0.2",
     "babel-preset-es2015": "^6.24.1",
     "babel-preset-react": "^6.24.1",
     "react": "^15.6.1",
     "react-dom": "^15.6.1",
     "react-transform-hmr": "^1.0.4",
     "webpack": "^3.4.1",
     },
     "description": "",
     "dependencies": {
     //項(xiàng)目依賴項(xiàng)
    
     }
    }
    
    

    在webpack配置文件webpack.config.js中輸入以下代碼:

    var webpack = require('webpack');//引入Webpack模塊,注意這里只能使用ES5語法引入
    
    
    module.exports = {
     entry: __dirname + "/app/main.js",//唯一入口文件
     output: {
     path: __dirname + "/build",//打包后的bundle.js文件存放的地方
     filename: "bundle.js" //打包后的文件名
     },
     module: {
     //loaders加載器
     loaders: [
     {
     test: /\.(js|jsx)$/, //匹配loaders所處理的文件的擴(kuò)展名的正則,如jsx和js文件
     loader: 'babel-loader' //loader的名稱
     }
     ]
     },
     plugins: [
     new webpack.HotModuleReplacementPlugin()//熱模塊替換插件
     ]
    };
    
    

    .babelrc是babel轉(zhuǎn)碼器的配置文件,它能將es6代碼轉(zhuǎn)換成es5代碼,還支持react語法轉(zhuǎn)換

    在.babelrc中輸入以下代碼:

    //.babelrc
    {
     "presets": [
     "react",
     "es2015"
     ],
     "env": {
     "development": {
     "plugins": [
     [
     "react-transform",
     {
     "transforms": [
     {
     "transform": "react-transform-hmr",
     "imports": [
     "react"
     ],
     "locals": [
     "module"
     ]
     }
     ]
     }
     ]
     ]
     }
     }
    }
    
    

    在app/components/Hello.jsx中輸入以下代碼:

    import React from 'react'; //引入react
    
    //創(chuàng)建組件類:名字首字母必須大寫
    class Hello extends React.Component {
     render() {
     return (
     <div>Hello World!</div>
     )
     }
    }
    
    //導(dǎo)出組件
    export default Hello;
    

    React 使用 JSX 來替代常規(guī)的 JavaScript。

    JSX 是一個(gè)看起來很像 XML 的 JavaScript 語法擴(kuò)展。

    它看起來是在Javascript代碼里直接寫XML的語法,而實(shí)質(zhì)上是一個(gè)語法糖,每一個(gè)XML標(biāo)簽都會(huì)被JSX轉(zhuǎn)換工具(如babel)轉(zhuǎn)換成純Javascript代碼

    在app/main.js中輸入以下代碼:

    //main.js
    import React from 'react';
    import ReactDOM from 'react-dom';
    import Hello from './components/Hello.jsx';
    
    ReactDOM.render(
     <Hello />,
     document.getElementById('main')
    );
    

    二、運(yùn)行項(xiàng)目

    打開命令行,cd到HelloReact文件夾目錄,運(yùn)行

    npm install

    該命令會(huì)安裝package.json的所有依賴文件,安裝完成后,運(yùn)行:

    npm start

    npm start命令是剛才你在package.json中定義的:

    "scripts": {
     "start": "webpack",
     }

    注:只有start可以省略run,其他都需要加上run,如 npm run dev;

    你會(huì)發(fā)現(xiàn)build.js中多了bundle.js文件,這是你在webpack.config.js中定義的打包文件:

    var webpack = require('webpack');//引入Webpack模塊,注意這里只能使用ES5語法引入
    
    module.exports = {
     ……
     output: {
     path: __dirname + "/build",//打包后的bundle.js文件存放的地方
     filename: "bundle.js" //打包后的文件名
     },
     ……
    };
    

    打開該目錄下的index.html,看到以下輸出運(yùn)行成功:

    三、添加熱替換模塊

    項(xiàng)目已經(jīng)可以運(yùn)行了,但是每次輸完代碼都要npm start進(jìn)行打包,想想都沒辦法忍受,這就需要用到webpack-dev-server熱替換模塊,所見即所得

    其實(shí)在前面的代碼中,為了避免麻煩,我已經(jīng)偷偷將熱替換模塊的部分配置加了進(jìn)去

    webpack.config.js中的

    ……
    plugins: [
     new webpack.HotModuleReplacementPlugin()//熱模塊替換插件
     ]
    ……

    package.json中的 

     "devDependencies": {
     ……
     "babel-plugin-react-transform": "^2.0.2",
     "react-transform-hmr": "^1.0.4",
     "webpack-dev-server": "^2.6.1"
     ……
     }

    還有.babelrc中的

    "env": {
     "development": {
     "plugins": [
     [
     "react-transform",
     {
     "transforms": [
     {
     "transform": "react-transform-hmr",
     "imports": [
     "react"
     ],
     "locals": [
     "module"
     ]
     }
     ]
     }
     ]
     ]
     }
     }
    
    

    你可以將這些代碼刪除,發(fā)現(xiàn)也是可以正常打包并運(yùn)行。因?yàn)橹安]有用到熱加載

    那我現(xiàn)在想用,要怎么用呢?

    很簡單,在package.json中加入:

    …… 
    "scripts": {
     "start": "webpack",
     "dev": "webpack-dev-server"
     }
    ……

    好,現(xiàn)在運(yùn)行一下npm run dev

    打開localhost:8080

    咦,怎么是列出文件列表,哦哦哦,原來是沒有配置默認(rèn)路徑;

    …… 
    "scripts": {
     "start": "webpack",
     "dev": "webpack-dev-server --contentBase='./build' "
     }
    ……

    重新運(yùn)行npm run dev:

     

    修改app/components/Hello.jsx

     

    保存后再回到頁面,發(fā)現(xiàn)頁面已經(jīng)自動(dòng)更新:

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    react.js使用webpack搭配環(huán)境的入門教程

    react.js使用webpack搭配環(huán)境的入門教程:本文介紹了react.js使用webpack搭配環(huán)境的入門教程,分享給大家,也給自己做個(gè)筆記 如果你想直接上手開發(fā),而跳過這些搭配環(huán)境的繁瑣過程,推薦你使用官方的create-react-app命令 npm install -g create-react-app //安裝create-re
    推薦度:
    標(biāo)簽: 教程 環(huán)境 React
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲国产第一站精品蜜芽| 国产在线精品一区二区在线观看| 久久精品亚洲精品国产欧美| 无码精品人妻一区| 最新国产の精品合集| 国产精品视频色拍拍| 亚洲国产精品尤物YW在线观看| 少妇人妻无码精品视频app| 国产内地精品毛片视频| 国产精品久久久久9999| 青青青国产精品一区二区| 日本精品夜色视频一区二区| 91久久精品国产91性色也| 久久久国产精品网站| 国产在线精品无码二区| 亚洲精品夜夜夜妓女网| 无码精品人妻一区二区三区免费 | 999精品视频这里只有精品| 亚洲精品成人网站在线观看| 久久亚洲精品无码播放| 99在线精品免费视频| 青青草原综合久久大伊人精品| 日本免费精品一区二区三区| 国产小呦泬泬99精品| 国产福利电影一区二区三区,亚洲国模精品一区 | 2021国产精品视频| 国产精品色内内在线播放| 日产精品99久久久久久| 日韩精品区一区二区三VR | 国内精品一级毛片免费看| 久久精品无码专区免费东京热| 日本人精品video黑人| 国产亚洲精品xxx| 国产香蕉精品视频在| 欧美777精品久久久久网| 久久r热这里有精品视频| 久久精品国产99国产精偷| 四虎影视国产精品永久在线 | 日韩国产成人精品视频| 精品亚洲成a人片在线观看少妇| 国产成人精品电影在线观看 |