成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

angular2初入眼簾之-搭個環(huán)境

everfight / 3337人閱讀

angular2是什么?我猜不容我贅述,各位一定略有耳聞,無論是曾經(jīng)AngularJS的擁躉,亦或是React的粉絲,都或多或少的對她有過一點了解。未見其物、先聞其聲,angular2在問世之前已經(jīng)做足了宣傳,想必諸位也一定被下面各種詞匯所震懾,什么:TypeScript、 ES5、 ES6、 Dart、 Immutable、 Unidirectional Data Flow、 Reactive Programming、 Decorators、 System.js、 webpack...,天花亂墜,美不勝收!但我們不禁要問,“都說AngularJS學(xué)習(xí)曲線陡峭,也沒陡出這些個莫名詞匯!”,angular2究竟該如何上手?看了這些個知識點,有木有嚇得手抖,都搞不清從何處入手了!?

本教程主旨:多些操作、少點說教(理論是進階必須的,千萬不要誤讀),讓我們從實踐中追尋真理吧!

本章源碼:environment

本章使用angular2版本為:2.4.5, webpack版本為: 2.2.0

推薦開發(fā)工具 vscode

這里我推薦使用vscode(原諒我變了,之前推薦的是atom)。很爽的哦!

創(chuàng)建項目
mkdir environment
cd environment
npm init

根據(jù)npm init提問,創(chuàng)建package.json文件,創(chuàng)建后去掉不必要的字段,像這樣即可:

{
  "name": "environment",
  "version": "1.0.0",
  "description": "I will show you how to set up angular2 development environment",
  "keywords": [
    "angular2",
    "environment"
  ],
  "scripts": {
    "start": "webpack-dev-server --hot--host 0.0.0.0"
  },
  "author": "Howard.Zuo",
  "license": "MIT",
  "dependencies": {
    "@angular/common": "^2.4.5",
    "@angular/compiler": "^2.4.5",
    "@angular/core": "^2.4.5",
    "@angular/platform-browser": "^2.4.5",
    "@angular/platform-browser-dynamic": "^2.4.5",
    "@angular/forms": "^2.4.5",
    "core-js": "^2.4.1",
    "rxjs": "5.0.3",
    "zone.js": "^0.7.6"
  },
  "devDependencies": {
    "@types/core-js": "^0.9.35",
    "ts-loader": "^2.0.0",
    "typescript": "^2.1.5",
    "webpack": "^2.2.0",
    "webpack-dev-server": "^2.2.0"
  }
}
安裝依賴
npm install

@angular: 這個必須的,沒意見吧?之所以分了多個包,這是最新2.1.2的變化,可以按需引入,增加靈活性

core-js: javascript的一個標(biāo)準(zhǔn)庫實現(xiàn),包含了大量ES2015, ES2016ES5實現(xiàn)

rxjs: 一個Reactive ProgrammingJavaScript實現(xiàn)。這里對她的依賴是因為angular2支持多種數(shù)據(jù)更新模式,比如:flux、Rx.js

zone.js: 用來對異步任務(wù)提供Hooks支持,使得在異步任務(wù)運行之前/之后做額外操作成為可能。在angular2里的主要應(yīng)用場景是提高臟檢查效率、降低性能損耗。

webpack: 我們這里使用webpack2對源碼進行編譯、打包,而不是用官網(wǎng)介紹的System.js的運行時加載、解釋、執(zhí)行。合并打包的好處不用我多說吧?減少請求數(shù)、uglify、預(yù)檢查...

webpack-dev-server: 一個輕量級的,支持webpack編譯的靜態(tài)服務(wù)器(調(diào)試工具),本章節(jié)我們就用它啟動程序

ts-loader: TypeStrong出品的TypeScript加載器,通過該加載器,TypeScript源碼可以順利被編譯成ES5代碼

typescript: angular2官方推薦的開發(fā)語言,我們在教程里也將使用該語言進行代碼編寫

@types/core-js: 自typescript 2.0.0以后,使用@types管理聲明文件,由于angular2依賴ES2015的諸多特性,譬如:Promise、Map等,所以需要引入這些API的聲明

第一個示例 創(chuàng)建index.html
touch index.html

向剛才創(chuàng)建的index.html里添加如下內(nèi)容:




    
    
    environment


    
    
    
    

創(chuàng)建app.ts
mkdir ts
touch ts/app.ts

向剛才創(chuàng)建的ts/app.ts里添加如下內(nèi)容:

import {Component} from "@angular/core";

//聲明第一個Component
@Component({
    selector: "my-app",
    template: "

My First Angular 2 App

" }) export class AppComponent { }
創(chuàng)建index.ts
touch ts/index.ts

向剛才創(chuàng)建的ts/index.ts里添加如下內(nèi)容:

//不顯示引入,你會得到"Uncaught reflect-metadata shim is required when using class decorators"的錯誤
import "core-js/es6";
import "core-js/es7/reflect";
import "zone.js/dist/zone";

//引入NgModule裝飾器
import { NgModule }      from "@angular/core";

//引入瀏覽器模塊
import { BrowserModule } from "@angular/platform-browser";

//引入啟動器
import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";

//引入我們剛才創(chuàng)建的第一個component
import { AppComponent }  from "./app";

//聲明一個應(yīng)用模塊
@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
class AppModule { }

//啟動應(yīng)用
platformBrowserDynamic().bootstrapModule(AppModule);
創(chuàng)建webpack.config.js
touch webpack.config.js

向剛才創(chuàng)建的webpack.config.js里添加如下內(nèi)容:

const {resolve} = require("path");

module.exports = {
    entry: {
        index: "./ts/index.ts"
    },
    output: {
        path: resolve(__dirname, "dist"),
        filename: "bundle.js",
        publicPath: "dist/"
    },
    module: {
        exprContextCritical: false,
        rules: [
            {
                test: /.ts$/,
                use: ["ts-loader"]
            }
        ]
    },
    resolve: {
        extensions: [
            ".js",
            ".ts"
        ]
    }
};
創(chuàng)建tsconfig.json
touch tsconfig.json

向剛才創(chuàng)建的tsconfig.json里添加如下內(nèi)容:

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "moduleResolution": "node",
        "noImplicitAny": true,
        "removeComments": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "sourceMap": true,
        "declaration": false
    },
    "buildOnSave": false,
    "compileOnSave": false,
    "exclude": [
        "node_modules"
    ]
}
運行

好了,到目前為止,我們第一個示例的開發(fā)/運行環(huán)境就基本搭好了,現(xiàn)在啟動試試看:

npm start

你會看到:

下回預(yù)告:牛刀小試component

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79186.html

相關(guān)文章

  • angular2初入眼簾-了解component

    摘要:通過增加刪除元素改變布局的。譬如和控制元素顯示隱藏,或者改變元素行為的。譬如設(shè)計看過我之前介紹以手寫依賴注入的朋友應(yīng)該已經(jīng)對行為驅(qū)動多少有些了解了。她有,并且包含了至少一個和一個標(biāo)簽。,將左邊的事件傳遞給了右邊的表達式通常就是事件處理函數(shù)。 前集回顧 在上一章里我們講了如何為angular2搭建開發(fā)環(huán)境(還沒搭起來的趕緊去看哦),并使之跑起來我們的第一個My First Angular...

    ixlei 評論0 收藏0
  • angular2初入眼簾-service

    摘要:前集回顧上一章里我們在里通過組合三個組件,并通過單向數(shù)據(jù)流的方式把她們驅(qū)動起來。設(shè)計每章都會提一下,先設(shè)計使用場景這種方式,我們稱之為,不了解的朋友參考以手寫依賴注入。 前集回顧 上一章里我們在AppComponent里通過組合InputItem、 CheckableItem、 Counter三個組件,并通過Unidirectional Data Flow(單向數(shù)據(jù)流)的方式把她們驅(qū)動...

    jokester 評論0 收藏0
  • angular2初入眼簾-多components協(xié)作

    摘要:我們使用了模式書寫,并引入了思想,這些以前只在里見到的設(shè)計,現(xiàn)在里也有體現(xiàn),并且在本章中會著重講解多的協(xié)作。如果之前寫過,那對于這種書寫方式一定無比熟悉。每次數(shù)據(jù)的變更,無論是還是,都將變化冒泡到,然后由再向下逐級推送各組件是否重繪。 前集回顧 在上一章里我們講了如何在angular2下開發(fā)一個component(還沒做的趕緊去學(xué)吧)。我們使用了Unidirectional Data ...

    dreamans 評論0 收藏0
  • Angular2入門系列(一)————如何在Angular2中使用jQuery和基于jQuery的插

    摘要:入門系列一如何在中使用和基于的插件在年的月中旬,官方終于正式發(fā)布。本篇文章就簡單介紹下在中如何使用極其插件。按照插件的使用規(guī)則,在對應(yīng)的中使用插件所需要的結(jié)構(gòu)。 Angular2入門系列(一)————如何在Angular2中使用jQuery和基于jQuery的插件 在2016年的9月中旬,Google官方終于正式發(fā)布Angular2。盡管npm社區(qū)越來越完善,也提供了大量的插件,但是基...

    Karrdy 評論0 收藏0

發(fā)表評論

0條評論

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