一、運行 npm init -y 快速初始化項目html
二、在項目根目錄建立src的源代碼目錄和dist產品目錄node
三、在src目錄下建立 index.htmlreact
四、使用cnpm 下安裝 webpack, 運行cnpm i webpack webpack-cli -Dwebpack
五、注意webpack 4.x 提供了 約定大於配置的概念;目的是爲了儘可能減小配置文件的體積;web
一、運行 npm i react react-dom -S 安裝包npm
二、在index.html 頁面中,建立容器babel
<!-- 容器,未來,使用 React 建立虛擬DOM元素,都會被渲染到這個指定的容器中 --> <div id='app'></div>
三、導入包app
import React from 'react'
impotr ReactDOM from 'react-dom'
四、建立虛擬DOM元素:dom
// 參數一、建立的元素類型,字符串,表示元素的名稱 // 參數2:是一個對象或null ,表示當前這個DOM元素的屬性 // 參數3:子節點(包括其餘 虛擬DOM 獲取文本節點) // 參數n:其餘子節點 // const myh1 = React.createElement('h1', null, '這是一個大H1') const myh1 = React.createElement('h1', {id: 'myh1', title: 'this is h1'}, '這是一個大H1')
五、渲染ui
// 參數1:要渲染的那個虛擬的DOM元素 // 參數2:指定頁面上DOM元素,當作的容器 ReactDOM.render(myh1, document.getElementById('app')) // Target container is not a DOM element. 通過分析猜想:第二個參數接收的應該是個 DOM元素而不是選擇器
什麼是JSX語法,就是符合 xml 的js 語法 ;(語法格式相對來講,要比HTML嚴謹不少)
{ "presets": ["env", "stage-0", "react"], "plugins": ["transform-runtime"] }
module: { // 全部第三方 模塊的配置規則 rules: [ // 第三方匹配規則 { test: /\.js|jsx$/, use: 'babel-loader', exclude: /node_modules/ }, // 千萬別忘記加 exclude排除項 ] }
注意:在配置webpack.config.js自動打包的時候,出現Error: Cannot find module '@babel/core'錯誤
我理解的是:babel-loader 版本過高不支持的緣由,我就把版本裝回了 @7.1.5版本 執行
在 npm run build 就成功了
附上簡單的webpack 配置
關於babel-loader@8.0.5
出現錯誤緣由已經找到,感謝@Sky__zt的回答.
(忘了去看官方文檔了)
官方默認babel-loader | babel 對應的版本須要一致: 即babel-loader
須要搭配最新版本babel
具體請參考:《npm_babel-loader》
兩種解決方案:
npm install -D babel-loader@7 babel-core babel-preset-env
npm install -D babel-loader @babel/core @babel/preset-env webpack