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

資訊專欄INFORMATION COLUMN

React入門:從零搭建一個(gè)React項(xiàng)目

stackvoid / 920人閱讀

摘要:一初始化項(xiàng)目新建文件夾,文件名文件夾名稱不要用,這類關(guān)鍵字,后面使用插件時(shí)會發(fā)生錯(cuò)誤。未設(shè)置會報(bào)一個(gè)警告。四在項(xiàng)目中使用安裝。

一、初始化項(xiàng)目

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

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

mkdir firstreact
cd firstreact
npm init

二、安裝webpack

新建gitignore文件,用于忽略安裝的包文件,文件內(nèi)容: node_modules

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

npm i --save-dev webpack

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

新建文件夾,文件名:src

src目錄下新建文件hello.js,文件內(nèi)容:

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

  element.innerHTML = "Hello React";

  return element;
};

src目錄下新建文件index.js,文件內(nèi)容:

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

document.body.appendChild(hello());

新建文件webpack.config.js,一個(gè)最基礎(chǔ)的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í)行完成后,根目錄下會新增一個(gè)dist文件夾,文件夾下是打包出來的js文件bundle.js

webpack

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

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

html-webpack-plugin配置,webpack.config.js內(nèi)容如下

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,此時(shí)dist目錄下生成了一個(gè)新文件index.html

webpack

安裝webpack-dev-server和webpack-cli,提供一個(gè)簡單的 web 服務(wù)器,并且能夠?qū)崟r(shí)重新加載。

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在啟動服務(wù)是要求設(shè)置mode,告知 webpack 使用相應(yīng)模式的內(nèi)置優(yōu)化。未設(shè)置會報(bào)一個(gè)警告。mode選項(xiàng)支持“development”“production”“none”,具體信息請閱文檔 修改package.json文件:

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

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

npm run dev

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

css編譯和js編譯。現(xiàn)在開發(fā)時(shí)一般css都會使用擴(kuò)展css語法,如less或sass,這時(shí)就需要在項(xiàng)目中安裝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文件,配置文件內(nèi)容如下

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

在src目錄下新建文件index.less,文件內(nèi)容如下

body{
  h1{
    color: green;
  }
}

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

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

document.body.appendChild(hello());

再次啟動服務(wù)

npm run start

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

四、在項(xiàng)目中使用React

安裝react。

npm i --save-dev react react-dom

修改src目錄下index.js,文件內(nèi)容如下:

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é)點(diǎn)content。 文件內(nèi)容如下:




  
  <%= htmlWebpackPlugin.options.title %>


  

對應(yīng)修改webpack.config.js文件,為htmlWebpackPlugin修改template

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

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

目錄結(jié)構(gòu)為:

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

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/101886.html

相關(guān)文章

  • 從零開始的 Android 新項(xiàng)目 - 收藏集 - 掘金

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

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

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

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

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

    codecook 評論0 收藏0
  • 學(xué)習(xí)從零開始搭建React腳手架

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

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

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

    wwq0327 評論0 收藏0

發(fā)表評論

0條評論

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