Web前端框架Angular4.0.0 正式版發(fā)布
前言
angular4.0.0正式版現(xiàn)在可以使用了。這是自我們宣布angular改版后,首次發(fā)布的專業(yè)版本。它向下兼容,支持所有使用了angular2.x.x版本的應(yīng)用程序。
我們很高興和大家分享這個(gè)版本,它包括最近的3個(gè)月中我們做的功能上的主要改進(jìn)。我們努力讓開發(fā)者們能夠很容易的接受angular4.0.0。
新版本的特性
•更輕量化、更快
在這個(gè)新版本上,我們履行了我們的承諾,我們做到了讓Angular的程序變的更輕量化,更快。但是我們還沒有完全的優(yōu)化完,在接下來的日子中,你會(huì)看到我們將著重于這方面的改進(jìn)。
•視圖引擎
我們在后臺(tái)改變了生成的AOT代碼樣式。這個(gè)變化將減少大多數(shù)情況下生成的60%的組件代碼。它可以使你自己的模板更個(gè)性化,復(fù)用率更高。
在我們新版本還沒發(fā)布的時(shí)候,我們聽到很多開發(fā)者認(rèn)為如果他們將angular更新到4.0.0,angular4.0.0將會(huì)使他們的生產(chǎn)束將降低。為了更好的了解我們對(duì)視圖引擎做的改進(jìn),歡迎閱讀我們的開發(fā)文檔。
•動(dòng)畫包
我們在@angular/core中新增了很多我們自己的動(dòng)畫效果包。這就意味著,你用或不用,動(dòng)畫包就在那里,不離不棄。
這個(gè)變化同樣會(huì)讓你更容易的找到文檔,更好的實(shí)現(xiàn)自動(dòng)完成。你也可以從@angular/platform-browser/animations中導(dǎo)入瀏覽器動(dòng)畫模型,以此來為你的主要模塊實(shí)現(xiàn)你需要的動(dòng)畫效果。
新功能
•*ngIf和*ngFor的改進(jìn)
我們的模塊綁定語法現(xiàn)在支持一些有用的改進(jìn)。你現(xiàn)在可以使用if/else這類風(fēng)格的語法,并且局部變量支持類似下面的使用。
<div *ngIf="userList | async as users; else loading"> <user-profile *ngFor="let user of users; count as count" [user]="user"> </user-profile> <div>{{count}} total users</div> </div> <ng-template #loading>Loading...</ng-template>
•Angular Universal
Universal,這個(gè)項(xiàng)目允許開發(fā)者在服務(wù)器上運(yùn)行Angular,這是angular的所改即所見特性。這是angular團(tuán)隊(duì)通過的第一個(gè)來自于使用者,社區(qū)推動(dòng)發(fā)展的一個(gè)項(xiàng)目。這個(gè)版本包括過去幾個(gè)月內(nèi)我們開發(fā)團(tuán)隊(duì)及社區(qū)開發(fā)者的,共同努力的結(jié)果。Angular的平臺(tái)服務(wù)器部分包含了Universal的專業(yè)代碼。
如果想了解更多的Augular的Universal,請查閱Angular/平臺(tái)服務(wù)器中的一個(gè)新方法,renderModuleFactory,或者查看Rob Wormald的演示庫。更多的文檔和代碼即將發(fā)布。
•TypeScript 2.1和2.2的兼容性
我們讓Angular支持了最近的幾個(gè)TypeScript的版本。這將會(huì)提升ngc的速度,此外,你的程序還將得到更好的類型檢查。
•模塊的源映射
當(dāng)你的模塊中的某個(gè)因素會(huì)造成錯(cuò)誤時(shí),我們會(huì)生成一個(gè)源映射,給出模塊中產(chǎn)生錯(cuò)誤的上下文位置。
包的變化
•Flat ES Modules (Flat ESM / FESM)
我們現(xiàn)在扁平化我們組件的版本(我們在EcmaScript模塊通過格式化代碼來控制版本,具體參見我們的示例文件)。這種行為將會(huì)幫助 你進(jìn)行tree-shaking,幫助減少你的生產(chǎn)術(shù)的大小,加快編譯,翻譯,以及在某些情況下瀏覽器的加載。
•Experimental ES2015 Builds
我們現(xiàn)在也選擇使用ES2015將我們的包扁平化,格式化。這種選擇是帶有實(shí)驗(yàn)性質(zhì)和冒險(xiǎn)進(jìn)入的。開發(fā)商已經(jīng)通報(bào)了,把這些包匯總將會(huì)增加7%的大小。嘗試一下這些新的包,配置編譯環(huán)境來解決包中的‘ec2015'屬性。json超出了這些模塊的屬性。
•Experimental Closure Compatibility
現(xiàn)在我們所有的代碼都有閉包注釋,使其盡可能的利用先進(jìn)的閉包優(yōu)化,從而導(dǎo)致減小的束大小和更好的tree shaking代碼優(yōu)化。
更新4.0.0
更新到4.0.0是和你更新Angular支持包到最新版本一樣簡單,如果你想要?jiǎng)赢嫷男绿匦?,請檢查兩次。這將試用與大多數(shù)情況。
•Linux/Mac系統(tǒng)下更新:
npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest typescript@latest --save
•window下更新:
npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save
接著你就可以正常使用了,可以運(yùn)行任意的ng服務(wù)或者ng命令,一切就都就緒了。
如果你依賴動(dòng)畫,可以在你的root NgModule下從@angular/platform-browser/animations模塊中導(dǎo)入新的BrowserAnimationsModule類。
如果不需要?jiǎng)赢?,除了?dòng)畫存在小問題,你的代碼可以直接編譯和運(yùn)行。從Angular/core下引入包是過時(shí)的一種做法,正常的做法應(yīng)該是從@angular/animations導(dǎo)入新的包,導(dǎo)入{ trigger, state, style, transition, animate }等。
如果你想看到更多改變你的應(yīng)用程序需要的信息,你可以參考我們正在做的交互式更新指南。
已知問題
angular4的其中一個(gè)目標(biāo)是使angular兼容TypeScript的strictNullChecks設(shè)置,使其支持一個(gè)更嚴(yán)格的子集類型的授權(quán)。我們發(fā)現(xiàn)在發(fā)布候選版時(shí),我們需要做各種工作,來保證angular4在各種使用情況下都可以正常運(yùn)行,所以為了防止應(yīng)用程序中途停止運(yùn)行,我們故意設(shè)置4.0版本不支持strictNullChecks。我們會(huì)很快解決這個(gè)問題的,預(yù)計(jì)在4.1版本,我們將支持strictNullChecks。(問題編號(hào):15432)。
下一步呢?
和我們發(fā)布2.x版本的時(shí)間表一樣,我們正在制定未來6個(gè)月的版本發(fā)布的工作計(jì)劃。你很快就能看到4.0.0的補(bǔ)丁,并且我們已經(jīng)在開發(fā)4.1版本了。我們將繼續(xù)努力讓Angular變的更小和更快,我們還會(huì)開發(fā)新的功能,比如說@angular/http,@angular/service-worker, and @angular/language-service的正式版本。
你也應(yīng)該持續(xù)關(guān)注、更新我們的文檔,一旦CLI穩(wěn)定發(fā)布,我們將提供相應(yīng)的架包作者的指導(dǎo)。
來源于angular4.0.0發(fā)布時(shí)的公告,譯者:niithub
原文發(fā)布時(shí)間:Thursday, March 23, 2017
翻譯時(shí)間:2017年3月24日
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
- Angular4 中常用的指令入門總結(jié)
- 淺談angular4生命周期鉤子
- Angular4學(xué)習(xí)筆記之準(zhǔn)備和環(huán)境搭建項(xiàng)目
- Angular4 中內(nèi)置指令的基本用法
- 詳解Angular4 路由設(shè)置相關(guān)
- 深入理解Angular4中的依賴注入
- angular4中關(guān)于表單的校驗(yàn)示例
- Angular4開發(fā)解決跨域問題詳解
- Angular4學(xué)習(xí)筆記之實(shí)現(xiàn)綁定和分包
- 淺談angular4 ng-content 中隱藏的內(nèi)容
- Angular4的輸入屬性與輸出屬性實(shí)例詳解
相關(guān)文章
Angular實(shí)現(xiàn)類似博客評(píng)論的遞歸顯示及獲取回復(fù)評(píng)論的數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于Angular如何實(shí)現(xiàn)類似博客評(píng)論的遞歸顯示及獲取回復(fù)評(píng)論的數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11AngularJs用戶登錄問題處理(交互及驗(yàn)證、阻止FQ處理)
這篇文章主要為大家詳細(xì)介紹了AngularJs用戶登錄問題處理,包括交互及驗(yàn)證、阻止FQ處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10利用Angular.js限制textarea輸入的字?jǐn)?shù)
相信在大家已經(jīng)學(xué)習(xí)了足夠多關(guān)于AngularJS的知識(shí)后,就可以開始創(chuàng)建第一個(gè)AngularJS應(yīng)用程序,這篇文章通過示例給大家介紹如何利用Angular.js限制textarea輸入的字?jǐn)?shù),有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-10-10Angular實(shí)現(xiàn)表格自滾動(dòng)效果
這篇文章主要為大家介紹了如何通過Angular實(shí)現(xiàn)表格自動(dòng)滾動(dòng)的效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Angular有一定幫助,需要的可以參考一下2022-01-01在AngularJS框架中處理數(shù)據(jù)建模的方式解析
這篇文章主要介紹了在AngularJS框架中處理數(shù)據(jù)建模的方式,作者同時(shí)也對(duì)AngularJS使用過程中的一些"坑"作了介紹,需要的朋友可以參考下2016-03-03