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

資訊專欄INFORMATION COLUMN

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

everfight / 3318人閱讀

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

本教程主旨:多些操作、少點(diǎn)說(shuō)教(理論是進(jìn)階必須的,千萬(wàn)不要誤讀),讓我們從實(shí)踐中追尋真理吧!

本章源碼:environment

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

推薦開(kāi)發(fā)工具 vscode

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

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

根據(jù)npm init提問(wèn),創(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: 這個(gè)必須的,沒(méi)意見(jiàn)吧?之所以分了多個(gè)包,這是最新2.1.2的變化,可以按需引入,增加靈活性

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

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

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

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

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

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

typescript: angular2官方推薦的開(kāi)發(fā)語(yǔ)言,我們?cè)诮坛汤镆矊⑹褂迷撜Z(yǔ)言進(jìn)行代碼編寫(xiě)

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

第一個(gè)示例 創(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";

//聲明第一個(gè)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)容:

//不顯示引入,你會(huì)得到"Uncaught reflect-metadata shim is required when using class decorators"的錯(cuò)誤
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";

//引入啟動(dòng)器
import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";

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

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

//啟動(dòng)應(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"
    ]
}
運(yùn)行

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

npm start

你會(huì)看到:

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

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

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

相關(guān)文章

  • angular2初入眼簾-了解component

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

    ixlei 評(píng)論0 收藏0
  • angular2初入眼簾-service

    摘要:前集回顧上一章里我們?cè)诶锿ㄟ^(guò)組合三個(gè)組件,并通過(guò)單向數(shù)據(jù)流的方式把她們驅(qū)動(dòng)起來(lái)。設(shè)計(jì)每章都會(huì)提一下,先設(shè)計(jì)使用場(chǎng)景這種方式,我們稱之為,不了解的朋友參考以手寫(xiě)依賴注入。 前集回顧 上一章里我們?cè)贏ppComponent里通過(guò)組合InputItem、 CheckableItem、 Counter三個(gè)組件,并通過(guò)Unidirectional Data Flow(單向數(shù)據(jù)流)的方式把她們驅(qū)動(dòng)...

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

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

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

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

    Karrdy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<