国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

React入門:從零搭建一個React項目

stackvoid / 913人閱讀

摘要:一初始化項目新建文件夾,文件名文件夾名稱不要用,這類關鍵字,后面使用插件時會發(fā)生錯誤。未設置會報一個警告。四在項目中使用安裝。

一、初始化項目

新建文件夾,文件名firstreact 文件夾名稱不要用react,node這類關鍵字,后面使用插件時會發(fā)生錯誤。

init項目環(huán)境,項目信息可默認或自行修改

mkdir firstreact
cd firstreact
npm init

二、安裝webpack

新建gitignore文件,用于忽略安裝的包文件,文件內容: node_modules

安裝webpack, 注意:我此處安裝的webpack版本是4.28.4,webpack4和webpack2, webpack3的一些配置不同,具體參考webpack文檔webpack中文文檔

npm i --save-dev webpack

三、配置webpack環(huán)境

新建文件夾,文件名:src

src目錄下新建文件hello.js,文件內容:

module.exports = function () {
  var element = document.createElement("h1");

  element.innerHTML = "Hello React";

  return element;
};

src目錄下新建文件index.js,文件內容:

var hello = require("./hello.js");

document.body.appendChild(hello());

新建文件webpack.config.js,一個最基礎的webpack配置如下:

const webpack = require("webpack");
const path = require("path");
var config = {?
    entry: [ "./src/index.js" ], // 打包入口文件
    output: {
        path: path.resolve(__dirname, "dist"),?
        filename: "bundle.js"?
    } // 打包輸出文件
};
module.exports = config;

執(zhí)行webpack。執(zhí)行完成后,根目錄下會新增一個dist文件夾,文件夾下是打包出來的js文件bundle.js

webpack

安裝html-webpack-plugin,該插件將為你生成一個 HTML5 文件, 其中包括使用?script?標簽的 body 中的所有 webpack 包。

npm i --save-dev html-webpack-plugin 

html-webpack-plugin配置,webpack.config.js內容如下

const webpack = require("webpack");
const path = require("path");
const HtmlwebpackPlugin = require("html-webpack-plugin");

var config = {?
    entry: [ "./src/index.js" ], // 打包入口文件
    output: {
        path: path.resolve(__dirname, "dist"),?
        filename: "bundle.js"?
    },// 打包輸出文件
    plugins: [
        new HtmlwebpackPlugin({?
            title: "Hello React",?
        })
    ]
};

module.exports = config;

再次執(zhí)行webpack,此時dist目錄下生成了一個新文件index.html

webpack

安裝webpack-dev-server和webpack-cli,提供一個簡單的 web 服務器,并且能夠實時重新加載。

npm install --save-dev webpack-dev-server webpack-cli

修改webpack.config

const webpack = require("webpack");
const path = require("path");
const HtmlwebpackPlugin = require("html-webpack-plugin");

var config = {
    entry: [
        "webpack/hot/dev-server",
        "webpack-dev-server/client?http://localhost:3000",
        "./src/index.js"
    ], // 入口文件
    output: {
        path: path.resolve(__dirname, "dist"),
        filename: "bundle.js"
    }, // 打包輸出文件
    plugins: [
        new HtmlwebpackPlugin({
            title: "Hello React"
        }),
    ]
};
module.exports = config;

配置webpack啟動的快方式,此處webpack4在啟動服務是要求設置mode,告知 webpack 使用相應模式的內置優(yōu)化。未設置會報一個警告。mode選項支持“development”“production”“none”,具體信息請閱文檔 修改package.json文件:

············
  "scripts": {
    "start": "webpack-dev-server --mode=development --port 3000 --hot",
    "build": "webpack --mode=production"
  }
···········

啟動服務,服務啟動后打開瀏覽器訪問http://localhost:3000/

npm run dev

三、優(yōu)化開發(fā)環(huán)境

css編譯和js編譯。現(xiàn)在開發(fā)時一般css都會使用擴展css語法,如less或sass,這時就需要在項目中安裝css編譯插件。此處以less為例。es6和es7語法也需要babel編譯。

const webpack = require("webpack");
const path = require("path");
const HtmlwebpackPlugin = require("html-webpack-plugin");

var config = {
    entry: [
        "webpack/hot/dev-server",
        "webpack-dev-server/client?http://localhost:3000",
        "./src/index.js"
    ], // 入口文件
    output: {
        path: path.resolve(__dirname, "dist"),
        filename: "bundle.js"
    }, // 打包輸出文件
    module: {
        rules: [
            {
                test: /.less$/,
                use: [
                    { loader: "style-loader" },
                    { loader: "css-loader" },
                    { loader: "less-loader" }
                ]
            },
            {
                test: /.js$/,
                exclude: /node_modules/,
                use: [
                    { loader: "babel-loader" }
                ]
            }
        ]
    },
    plugins: [
        new HtmlwebpackPlugin({
            title: "Hello React"
        }),
    ]

安裝:

npm i --save-dev less css-loader style-loader less-loader
npm i --save-dev babel-loader ?@babel/core @babel/preset-env @babel/preset-react 

修改webpack.config.js

const webpack = require("webpack");
const path = require("path");
const HtmlwebpackPlugin = require("html-webpack-plugin");

var config = {
    entry: [
        "webpack/hot/dev-server",
        "webpack-dev-server/client?http://localhost:3000",
        "./src/index.js"
    ], // 入口文件
    output: {
        path: path.resolve(__dirname, "dist"),
        filename: "bundle.js"
    }, // 打包輸出文件
    module: {
        rules: [
            {
                test: /.less$/,
                use: [
                    { loader: "style-loader" },
                    { loader: "css-loader" },
                    { loader: "less-loader" }
                ]
            },
            {
                test: /.js$/,
                exclude: /node_modules/,
                use: [
                    { loader: "babel-loader" }
                ]
            }
        ]
    },
    plugins: [
        new HtmlwebpackPlugin({
            title: "Hello React"
        }),
    ]
};
module.exports = config;

根目錄下新建.babelrc文件,配置文件內容如下

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react"
  ]
}

在src目錄下新建文件index.less,文件內容如下

body{
  h1{
    color: green;
  }
}

修改src目錄下的index.js文件:

import hello from "./hello.js";
import "./index.less";

document.body.appendChild(hello());

再次啟動服務

npm run start

目前為止完成了一個最基礎的項目結構,后面需要使用其他框架的話再此基礎上修改。在這過程中因各個插件工具的版本不同可能會發(fā)生不同錯誤,遇到錯誤時,請查詢相關文檔。

四、在項目中使用React

安裝react。

npm i --save-dev react react-dom

修改src目錄下index.js,文件內容如下:

import React from "react";
import ReactDOM from "react-dom";

import "./index.less";

class APP extends React.Component  {
    render() {
        return (

Hello React

) } } ReactDOM.render(, document.getElementById("content"));

在src目錄下新建index.html,在html增加掛載節(jié)點content。 文件內容如下:




  
  <%= htmlWebpackPlugin.options.title %>


  

對應修改webpack.config.js文件,為htmlWebpackPlugin修改template

············

    plugins: [
        new HtmlwebpackPlugin({
            title: "Hello React",
            template: "./src/index.html"
        }),
    ]
    
············

目錄結構為:

│  .babelrc
│  .gitignore
│  package.json
│  webpack.config.js
│      
└─src
        hello.js
        index.html
        index.js
        index.less

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/101886.html

相關文章

  • 從零開始的 Android 新項目 - 收藏集 - 掘金

    摘要:從零開始的新項目高級篇掘金承接上篇,本篇繼續(xù)講解一些更加進階的內容,包括列表綁定自定義屬性雙向綁定表達式鏈表達式動畫注入測試等。 從零開始的 Android 新項目 8 - Data Binding 高級篇 - 掘金 承接上篇,本篇繼續(xù)講解一些更加進階的內容,包括:列表綁定、自定義屬性、雙向綁定、表達式鏈、Lambda表達式、動畫、Component注入(測試)等。 Demo源碼庫:D...

    LeviDing 評論0 收藏0
  • 手把手教你從零搭建react局部熱加載環(huán)境

    摘要:有沒有辦法實現(xiàn)就局部刷新呢當然是有第十步執(zhí)行為了實現(xiàn)局部熱加載,我們需要添加插件。 前言 用了3個多月的vue自認為已經(jīng)是一名合格的vue框架api搬運工,對于vue的api使用到達了一定瓶頸,無奈水平有限,每每深入底層觀賞源碼時候都迷失了自己。 遂決定再找個框架學習學習看看能否突破思維局限,加上本人早已對React、RN技術垂涎已久,于是決定找找教程來學習。無奈第一步就卡在了環(huán)境搭...

    quietin 評論0 收藏0
  • 如何從零入門React?實戰(zhàn)做個FM應用吧

    摘要:面試造航母,工作擰螺絲,新公司面試技術官要求會技術棧。然而公司項目暫時并沒有用到,不過為了提升實戰(zhàn)經(jīng)驗,還是在業(yè)余時間搗騰出一個,以下是項目介紹。前段為了學習小程序的開發(fā),做了個小程序名叫口袋吉他,這也是個人興趣驅使的開發(fā)想法。 面試造航母,工作擰螺絲,新公司面試技術官要求會react技術棧。 問:有使用過React么?答:沒,只使用過Vue。又問:給你一星期能上手開發(fā)么?答:可以(一...

    codecook 評論0 收藏0
  • 學習從零開始搭建React腳手架

    摘要:寫在前面準備學習一下和相關的東西,官方的腳手架看起來太繁瑣,所以打算自己來搭建一個,參考了這個文檔從零搭建全家桶框架教程步驟上都差不多第一步,依賴總覽完成到我現(xiàn)在半成品的過程中,目前完成開發(fā)模式的相關操作,添加了按需加載的地步。 寫在前面 準備學習一下react和webpack相關的東西,官方的腳手架看起來太繁瑣,所以打算自己來搭建一個,參考了這個文檔從零搭建React全家桶框架教程;...

    cod7ce 評論0 收藏0
  • 從零開始搭建React同構應用(二):瀏覽器端工程化

    摘要:從零開始搭建同構應用二項目工程化瀏覽器端在從零開始同構開發(fā)一中我們已經(jīng)能實現(xiàn)基本的配置和編譯了。接下來我們需要將編譯工作工程化。配置作用自動生成自動在引入,。文件內容如下同構開發(fā)配置自動刷新這里我們用到的修飾器特性。 從零開始搭建React同構應用(二) 項目工程化(瀏覽器端) 在從零開始React同構開發(fā)(一)中我們已經(jīng)能實現(xiàn)基本的React配置和編譯了。接下來我們需要將編譯工作工程...

    wwq0327 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<