最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談react+es6+webpack的基礎(chǔ)配置

 更新時(shí)間:2017年08月09日 08:26:33   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談react+es6+webpack的基礎(chǔ)配置。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

這是模塊化開發(fā)、主流框架和最新版的ECMAScript語法規(guī)范的一個(gè)小demo

準(zhǔn)備工作

安裝 nodeJs

首先進(jìn)入node官網(wǎng),去下載最新版的nodeJs

webpack

安裝webpack

npm install webpack -g

參數(shù)-g表示全局安裝webpack,你在cmd命令中哪個(gè)文件夾下都可以使用webpack的命令,如果不加-g的話,是只可以在你安裝webpack的目錄下使用webpack這個(gè)命令

webpack 也有一個(gè) web 服務(wù)器

npm install webpack-dev-server -g

-g道理同上

配置webpack

1、先確認(rèn)一下項(xiàng)目的目錄結(jié)構(gòu)

|-app
 |--component
  |---component.js
 |--app.js
|-build
 |--css
 |--img
 |--js
 |--index.html
|-webpack.config.js

2、配置webpack.config.js

在使用webpack的時(shí)候,需要?jiǎng)?chuàng)建一個(gè)名為 webpack.config.js 的配置文件,這個(gè)文件在安裝webpack的時(shí)候,是不會(huì)自動(dòng)創(chuàng)建的,是需要手動(dòng)創(chuàng)建,文件的位置要放在當(dāng)前安裝webpack根目錄下

var path = require('path');

 module.exports = {
   entry: path.resolve(__dirname, './app/app.js'),
   output: {
     path: path.resolve(__dirname, './build'),
     filename: 'js/build.js'
   },
   module: {
     loaders: [{
       test: /\.js|.jsx?$/,
       exclude: /node_modules/,
       loader: 'babel-loader',
       query: {
         presets: ['es2015', 'react']
       }
     }]
   }
 }

這是一個(gè)簡(jiǎn)單的webpack的配置,首先先引用了path對(duì)象。

entry是一個(gè)入口文件,在這個(gè)文件中的所有內(nèi)容,會(huì)被打包到output指定目錄的指定文件當(dāng)中。

path.resolve是一個(gè)來格式化路徑的方法,path.resolve的方法參數(shù)有兩個(gè)path.resolve(from,to),from這里的__dirname是為了獲取當(dāng)前模塊文件所在的目錄,to這里的./app/app.js是一個(gè)相對(duì)路徑,ouput是出口,ouput中的path和entry的方法同理,這里不做贅述。

filename是指向一個(gè)指定文件,入口打包的所有文件,最后代碼都會(huì)在這個(gè)出口文件中看到。

module中添加的loaders這個(gè)數(shù)組,里面的對(duì)象是用來轉(zhuǎn)換模塊的,現(xiàn)在這里只添加了一個(gè)js的模塊,用來轉(zhuǎn)換es6語法和react

這個(gè)時(shí)候,還需要安裝一個(gè) babel-loader

npm install babel-core babel-loader babel-preset-es2015 babel-preset-react --save-dev

3、修改html文件

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 <title>React + Webpack + es6</title>
 </head>
 <body>
   <div id="aaa"></div>
   <script src="js/build.js"></script>
 </body>
 </html>

修改完 index.html 后,開始編寫js:

在 app.js 中,添加 alert('hello world')

然后在cmd命令行中,運(yùn)行 webpack ,打包完成后打開 index.html ,會(huì)彈出一個(gè)系統(tǒng)彈窗,"hello world"。

這個(gè)時(shí)候證實(shí)了,我們的配置是正確的,可以正常運(yùn)行。

react

安裝react

首先,還是和上面一樣,需要安裝對(duì)應(yīng)的插件

npm install react react-dom --save-dev

安裝完成后,打開component.js,修改為:

import React from 'react';

export class Component extends React.Component {
  render() {
    return ( < div > hello world < /div>)
  }
}

打開 app.js ,修改為:

import React from 'react';
import {Component} from './component/component.js';
import {render} from 'react-dom';

render(<Component />,document.querySelector('#aaa'));

import是es6中的一個(gè)新方法,是用來加載模塊的,上面的 import 是用來加載React的, export 定義了對(duì)外接口,這里要注意,加載模塊定義的名稱和類的名稱首字母必須大寫,如果不大寫,會(huì)報(bào)錯(cuò)。

運(yùn)行 webpack ,這個(gè)時(shí)候就完成了一個(gè)簡(jiǎn)單的 webpack + react + es6 的模塊化開發(fā),可以直接雙擊打開 index.html 查看演示,也可以運(yùn)行 webpack-dev-server 打開本地服務(wù)器,瀏覽器打開 http://localhost:8080/build/index.html 查看演示

React組件生命周期

1、getDefaultProps

作用于組件類,只調(diào)用一次,返回對(duì)象用于設(shè)置默認(rèn)的props,對(duì)于引用值,會(huì)在實(shí)例中共享。

2、getInitialState

作用于組件的實(shí)例,在實(shí)例創(chuàng)建時(shí)調(diào)用一次,用于初始化每個(gè)實(shí)例的state,此時(shí)可以訪問this.props。(es6不支持)

3、componentWillMount

在完成首次渲染之前調(diào)用,此時(shí)仍可以修改組件的state。

4、render

必選的方法,創(chuàng)建虛擬DOM,該方法具有特殊的規(guī)則:

  1)只能通過this.props和this.state訪問數(shù)據(jù)

  2)可以返回null、false或任何React組件

  3)只能出現(xiàn)一個(gè)頂級(jí)組件(不能返回?cái)?shù)組)

  4)不能改變組件的狀態(tài) 5、不能修改DOM的輸出

5、componentDidMount

真實(shí)的DOM被渲染出來后調(diào)用,在該方法中可通過this.getDOMNode()訪問到真實(shí)的DOM元素。此時(shí)已可以使用其他類庫來操作這個(gè)DOM。

在服務(wù)端中,該方法不會(huì)被調(diào)用。

6、componentWillReceiveProps

組件接收到新的props時(shí)調(diào)用,并將其作為參數(shù)nextProps使用,此時(shí)可以更改組件props及state。

7、shouldComponentUpdate

組件是否應(yīng)當(dāng)渲染新的props或state,返回false表示跳過后續(xù)的生命周期方法,通常不需要使用以避免出現(xiàn)bug。在出現(xiàn)應(yīng)用的瓶頸時(shí),可通過該方法進(jìn)行適當(dāng)?shù)膬?yōu)化。

在首次渲染期間或者調(diào)用了forceUpdate方法后,該方法不會(huì)被調(diào)用

8、componentWillUpdate

接收到新的props或者state后,進(jìn)行渲染之前調(diào)用,此時(shí)不允許更新props或state。

9、componentDidUpdate

完成渲染新的props或者state后調(diào)用,此時(shí)可以訪問到新的DOM元素。

10、componentWillUnmount

組件被移除之前被調(diào)用,可以用于做一些清理工作,在componentDidMount方法中添加的所有任務(wù)都需要在該方法中撤銷,比如創(chuàng)建的定時(shí)器或添加的事件監(jiān)聽器。

React調(diào)試( React Developer Tools )

如果直接在瀏覽器調(diào)試的話,我們只能在Element中看到渲染后的DOM分層結(jié)構(gòu),如果想看到React組件的分層結(jié)構(gòu),就會(huì)需要到一個(gè)調(diào)試工具,因?yàn)楸救吮容^喜歡使用chrome瀏覽器進(jìn)行調(diào)試,所以這里暫時(shí)只拿chrome瀏覽器來舉例。

1、擴(kuò)展程序商店下載(推薦)

首先,要保證你的瀏覽器是可以訪問谷歌擴(kuò)展程序商店,接著我們?cè)谏痰曛兴阉?React Developer Tools,然后就會(huì)出現(xiàn)一個(gè)擴(kuò)展程序,擴(kuò)展程序商店下載的,直接啟用就好。

2、網(wǎng)上安裝包下載

如果是網(wǎng)上下載的安裝包,就找一下包里面會(huì)有一個(gè).crx文件擴(kuò)展名的文件,拖放到擴(kuò)展程序中即可。

個(gè)人說明

上述所有內(nèi)容都是本人的個(gè)人理解,如果出現(xiàn)不正確的地方,請(qǐng)及時(shí)評(píng)論方便做出修改

以上這篇淺談react+es6+webpack的基礎(chǔ)配置就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何對(duì)react hooks進(jìn)行單元測(cè)試的方法

    如何對(duì)react hooks進(jìn)行單元測(cè)試的方法

    這篇文章主要介紹了如何對(duì)react hooks進(jìn)行單元測(cè)試的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • React Hook父組件如何獲取子組件的數(shù)據(jù)/函數(shù)

    React Hook父組件如何獲取子組件的數(shù)據(jù)/函數(shù)

    這篇文章主要介紹了React Hook父組件如何獲取子組件的數(shù)據(jù)/函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • react-redux的基本使用

    react-redux的基本使用

    react-redux是redux官方react綁定庫,能夠使react組件從redux store中讀取數(shù)據(jù),并且向store分發(fā)actions以此來更新數(shù)據(jù),這篇文章主要介紹了react-redux使用,需要的朋友可以參考下
    2022-08-08
  • React組件三大核心屬性State?props?Refs介紹

    React組件三大核心屬性State?props?Refs介紹

    組件實(shí)例的三大核心屬性是:State、Props、Refs。類組件中這三大屬性都存在。函數(shù)式組件中訪問不到?this,也就不存在組件實(shí)例這種說法,但由于它的特殊性(函數(shù)可以接收參數(shù)),所以存在Props這種屬性
    2023-02-02
  • React 組件通信的多種方式與最佳實(shí)踐

    React 組件通信的多種方式與最佳實(shí)踐

    在現(xiàn)代前端開發(fā)中,組件化是 React 的核心理念之一,組件之間的通信是構(gòu)建復(fù)雜應(yīng)用的重要組成部分,在這篇文章中,我們將深入探討 React 組件通信的多種方式,包括它們的優(yōu)缺點(diǎn)、使用場(chǎng)景以及最佳實(shí)踐,需要的朋友可以參考下
    2024-11-11
  • React如何利用相對(duì)于根目錄進(jìn)行引用組件詳解

    React如何利用相對(duì)于根目錄進(jìn)行引用組件詳解

    這篇文章主要給大家介紹了關(guān)于React如何使用相對(duì)于根目錄進(jìn)行引用組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • react腳手架構(gòu)建運(yùn)行時(shí)報(bào)錯(cuò)問題及解決

    react腳手架構(gòu)建運(yùn)行時(shí)報(bào)錯(cuò)問題及解決

    這篇文章主要介紹了react腳手架構(gòu)建運(yùn)行時(shí)報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • React Native按鈕Touchable系列組件使用教程示例

    React Native按鈕Touchable系列組件使用教程示例

    這篇文章主要為大家介紹了React Native按鈕Touchable系列組件使用教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • react?源碼中位運(yùn)算符的使用詳解

    react?源碼中位運(yùn)算符的使用詳解

    這篇文章主要為大家詳細(xì)介紹了react?位運(yùn)算符,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • React如何使用Portal實(shí)現(xiàn)跨層級(jí)DOM渲染

    React如何使用Portal實(shí)現(xiàn)跨層級(jí)DOM渲染

    Portal 就像是一個(gè)“傳送門”,能讓你把組件里的元素“傳送到”其他 DOM 節(jié)點(diǎn)下面去渲染,下面小編就來和大家簡(jiǎn)單介紹一下具體的使用方法吧
    2025-04-04

最新評(píng)論

固安县| 城固县| 连云港市| 白朗县| 新营市| 双峰县| 临沭县| 肇东市| 建宁县| 北海市| 西青区| 鲜城| 南通市| 浙江省| 安达市| 白山市| 汕尾市| 志丹县| 吉林市| 时尚| 抚远县| 隆化县| 阿合奇县| 都安| 普兰店市| 泗水县| 涟源市| 德安县| 河西区| 盈江县| 长乐市| 抚顺市| 庆城县| 南汇区| 博乐市| 广饶县| 高雄县| 焦作市| 富蕴县| 仙居县| 巧家县|