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

資訊專欄INFORMATION COLUMN

使用React-route和Webpack快速構建一個react程序

ssshooter / 3016人閱讀

摘要:對文件進行處理,這正是強大的原因。接著,我們使用創建一個類。在這個中,我們定義路由并且指定了相應的處理程序組件。我們創建其實那只是一個非常簡單的組件,內容為顯示。官方也有一個使用聊天可供學習。

初始化項目

我們先創建個空文件夾,然后初始化 package.json ,填寫一些基本信息。

$ npm init

接下來我們開始安裝依賴項,我的 package.json 的依賴項如下

 "devDependencies": {
    "babel": "^5.5.6",
    "babel-core": "^5.5.6",
    "babel-loader": "^5.1.4",
    "history": "^1.13.1",
    "react": "^0.13.3",
    "react-hot-loader": "^1.2.7",
    "react-router": "^0.13.3",
    "webpack": "^1.12.6",
    "webpack-dev-server": "^1.12.1"
  } 

運行命令:

$ npm install 

項目創建好后,我們接下來創建一些必要的文件和目錄;

$ mkdir js css && touch index.html webpack.config.js
webpack

webpack (更多)是一款模塊處理器,他會將你所有的代碼打包成靜態文件,放到你的開發的App中。

打開webpack.config.js,然后添加下面的代碼:

var webpack = require("webpack");  
module.exports = {  
    entry: [
      "webpack/hot/only-dev-server",
      "./js/app.js"
    ],
    output: {
        path: __dirname + "/build",
        filename: "bundle.js"
    },
    module: {
        loaders: [
            { test: /.js?$/, loaders: ["react-hot", "babel"], exclude: /node_modules/ },
            { test: /.js$/, exclude: /node_modules/, loader: "babel-loader"},
            { test: /.css$/, loader: "style!css" }
        ]
    },
    plugins: [
      new webpack.NoErrorsPlugin()
    ]
};

這份文件大概有四個配置項entry, output, module, plugins.

entry:指定打包的入口文件,每有一個鍵值對,就是一個入口文件。

output:配置打包結果,path定義了輸出的文件夾,filename則定義了打包結果文件的名稱,filename里面的[name]會由entry中的鍵替換,例子中的/build/bundle.js便是生成的文件。

resolve:定義了解析模塊路徑時的配置,常用的就是extensions,可以用來指定模塊的后綴,這樣在引入模塊時就不需要寫后綴了,會自動補全.

module:定義了對模塊的處理邏輯,這里可以用loaders定義了一系列的加載器,以及一些正則。當需要加載的文件匹配test的正則時,就會進行處理。這里我們使用了react-hotbabelbabel-loader是我們使用ES-6進行開發時用于生成JS文件。
最后我們生成了一個style.css僅僅做個例子,告訴我們如何引入樣式文件,實際上我們可以加載諸如sass-loader這樣的加載器。

loader對文件進行處理,這正是webpack強大的原因。比如這里定義了凡是.js結尾的文件都是用babel-loader做處理,而.jsx結尾的文件會先經過jsx-loader處理,然后經過babel-loader處理。當然這些loader也需要通過npm install安裝。

plugins: 這里定義了需要使用的插件,比如commonsPlugin在打包多個入口文件時會提取出公用的部分,生成common.js。

NoErrorsPlugin: 定義代碼出現錯誤時的時受否自動重新加載。

這個時候我們再package.json中加入script 字段,

"scripts": {
    "start": "webpack-dev-server --hot --progress --colors",
    "build": "webpack --progress --colors"
  }

這個時候我們輸入一個npm start命令時候我們會啟動一個webpack server這個時候你可以訪問localhost:8080/webpack-dev-server/#/;如果你使用npm run build時候可以將文件自動生成到bulid/下。

接下來我們新建index.html文件

  
  
  
    
    New React App
  
  
    

現在我們訪問瀏覽器可以便會引進新創建的bundle.js,實際上你可以引進任何你想要的資源。

React-router

完成項目的基本創建,接下來我們創建app.js項目的入口文件。代碼如下:

import React from "react";  
import Router from "react-router";  
import { DefaultRoute, Link, Route, RouteHandler } from "react-router";

import LoginHandler from "./components/Login.js";

let App = React.createClass({  
  render() {
    return (
      
Home Login {/* this is the importTant part */}
); } }); let routes = ( ); Router.run(routes, function (Handler) { React.render(, document.body); });

文章頭部是我們將要用的reactreact-router的插件包引進來。同事我們還引入login.js作為我們的Login React 組件。接著,我們使用React 創建一個類。這個例子中,其實就是一個簡單的導航條會出現所有的子組件中。我們簡單的Link到我們的路由:AppLogin.然后React route將會被RouteHandler組件初始化。

在這個App中,我們定義路由并且指定了相應的處理程序(React 組件)。我們定義了我們的根路徑為app,并且其他的地址將會是App的子組件。這個例子中,我們添加了一個登錄頁面,用于用戶登錄到App中。

最后,React-router會將我們定義的一切加載到document.body中來。這就是index.html轉變成我們React App.

Components

弄到這了,我們需要添加組件(Components).在我們的 /js 目錄下,我們需要開始創建組件。我們創建Login.js:

import React from "react";

let Login = React.createClass({ 

  render() {
    return(
Welcome to login
); } }); export default Login;

其實那只是一個非常簡單的組件,內容為顯示"Welcaome to Login"。這個時候我們可以運行下我們的app。npm start 然后訪問http://localhost:8080/webpack-dev-server/#

這個時候,你可以見到一個導航條上有兩個鏈接Home 和 Login.如果點擊Login這個時候可以顯示我們剛剛創建的內容。

如果上面一切順利,那么現在你可以自己創建更多內容來充實自己App.如果你項目中使用Flux(強烈推薦,地址),你可以在你的js 文件夾下使用任何結構。Facebook 官方也有一個使用flux聊天Demo可供學習。

發布

實際上我們有很多方法可以上線你的服務,但是非常好的一件事情是webpack 可以輕松的使用生成的文件。其中你可以快速的將這些資源文件放到cdn上,然后將index.html放到主機上,更新我們的腳本路徑就可以了。

博客地址:http://www.jackpu.com/shi-yong-react-routehe-webpackkuai-su-gou-jian-ge-reactcheng-xu/

如果有什么問題可以發送郵件給我 kakashjack@gmail.com 以及原作者

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

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

相關文章

  • React+ Redux + React-route + Axios 實戰,很適合進階

    摘要:前言前段時間學習完了的基礎自己網上找了一些實戰項目做了幾個感覺項目不是很全面就想做一個完整的項目來提升自己的水平以前學習的時候就看過大神的項目所以自己打算用重寫它后端數據還是用實在沒有精力擼后端感謝大神該項目是餓了么目前開發了登錄注冊購 前言 前段時間學習完了React的基礎,自己網上找了一些實戰項目,做了幾個感覺項目不是很全面,就想做一個完整的項目來提升自己的React水平.以前學習...

    phpmatt 評論0 收藏0
  • Router入門0x203: reactreact-routereact-route-dom

    摘要:概述上一章使用的是自己實現的,當然已經有現成的庫給我們用了,那就是。總結看透它,然后掌握它資源源碼 0x000 概述 上一章使用的是自己實現的route,當然已經有現成的庫給我們用了,那就是react-route。 0x001 history Api說明 在說這個庫之前,得先對history新的api做一個了解 window.history.pushState(data,title...

    luxixing 評論0 收藏0
  • react+webpack+webstorm開發環境搭建

    摘要:先是基礎知識,首先是補了的基礎,使用了的入門教程。另外關于,慕課的視頻教程講的也比較清晰,適合入門統統過了一遍之后,開始建立腳手架,正式上馬編寫。廢話不多說了,下面一步一步開始了。安裝完成之后,記得設置路徑構建項目使用新建一個空白項目。 前言 春節期間,更新了一下自己關于前端的知識體系,要知道對于前端技術,我還是停留在JSP,JQUERY的時代,現在項目里面使用REACT作為前臺,所以...

    Snailclimb 評論0 收藏0
  • Router入門0x201: 從 URL 到 SPA

    摘要:的全稱是統一資源定位符英文,可以這么說,是一種標準,而網址則是符合標準的一種實現而已。渲染器,將組件渲染到頁面上。 0x000 概述 從這一章開始就進入路由章節了,并不直接從如何使用react-route來講,而是從路由的概念和實現來講,達到知道路由的本質,而不是只知道如何使用react-route庫的目的,畢竟react-route只是一個庫,是路由的一個實現而已,而不是路由本身。 ...

    honmaple 評論0 收藏0

發表評論

0條評論

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