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

資訊專欄INFORMATION COLUMN

ES6引入前需要解決的問題

verano / 2595人閱讀

摘要:的新特性哪些適合使用我們參考使用進(jìn)行開發(fā)的思考文章推薦的新特性,僅使用三星的。另外推薦閱讀探秘系列的新特性是否通過轉(zhuǎn)換后還有兼容問題團(tuán)隊(duì)中又同學(xué)正在驗(yàn)證,我們驗(yàn)證的環(huán)境是,我們最終會(huì)使用三星特性加上兼容性的。

最近項(xiàng)目中的一個(gè)模塊正式引入的ES6,由于是引入新技術(shù),也遇到了一些問題,下面分享下整個(gè)引入流程

為什么要引入ES6

最近在看一些前端解決方案的文章,ES6越來越多的出現(xiàn)在前端方案中。

ES6由于瀏覽器不支持,在使用上也是和CoffeeScript和TypeScript一樣,都需要compile-to-JS。

理由一:
符合未來趨勢(shì),angular2就是使用TypeScript實(shí)現(xiàn);
react native 也是可以直接使用es6的語法;

理由二:
提高開發(fā)效率(待考證);

理由三:
減少代碼量、提高可讀性等

但我覺得不僅僅如此,應(yīng)該會(huì)有更多優(yōu)勢(shì)。所以需要親自驗(yàn)證。

引入前考慮最多的事情

從個(gè)人的角度,趨勢(shì)這個(gè)東西說不準(zhǔn),減少代碼量、提高可讀性等這些其實(shí)都可以通過規(guī)范來完成。

我個(gè)人最看重的是效率這塊,是否能夠真正的提高團(tuán)隊(duì)開發(fā)效率。

另外在一片文章中看到說facebook.com 都使用了ES6 + babel complile,我心里也安穩(wěn)了一些。

考慮的第二點(diǎn)就是是否會(huì)給整個(gè)系統(tǒng)引入技術(shù)債務(wù),由于這個(gè)是新技術(shù)的引入,和之前框架沒有任何重疊,而且引入也是選擇性的(提供一種可用的環(huán)境)。如果未來有較大的升級(jí),我們可以修改compile-to-JS做適配和轉(zhuǎn)換。

最后一個(gè)問題是我們項(xiàng)目使用的不是grunt這種,有直接的解決方案,引入可能會(huì)有風(fēng)險(xiǎn)。不過慶幸的是,我們發(fā)現(xiàn)我們使用的edp已經(jīng)支持了。其實(shí)我們開始已經(jīng)想好了如果不支持,自己會(huì)擴(kuò)展一些插件去支持。

技術(shù)方案

ES6 + babel

需要解決的問題

開發(fā)環(huán)境下的瀏覽器不支持ES6?

使用babel轉(zhuǎn)換的代碼,調(diào)試不方便?

線上環(huán)境的代碼打包編譯怎么處理?

ES6的新特性哪些適合使用?

ES6的新特性是否通過babel轉(zhuǎn)換后還有兼容問題?

開發(fā)效率是否會(huì)有提高?

編譯器高亮支持?

下面挨個(gè)解決問題

想到一句話

你可以坐以待斃,也可以立刻動(dòng)手解決問題,解決一個(gè)再解決一個(gè),解決了所有問題,你就活下來可以回家了

來自《火星救援》

開發(fā)環(huán)境下的瀏覽器不支持ES6?
這個(gè)容易,使用babel。

使用babel轉(zhuǎn)換的代碼,調(diào)試不方便?
確定了sourceMap的方式解決,但是開始沒有認(rèn)真看babel文檔,繞了個(gè)圈子,最后發(fā)現(xiàn)babel有個(gè)屬性

sourceMaps:both
filename: pathname.replace(/.(w+)$/, ".raw.$1")

傳入這個(gè)參數(shù)sourceMaps傳入表示啟用;
filename是編譯前對(duì)應(yīng)的文件,這里必須給一個(gè)和處理的文件名不一樣的

babel.transform(code, options)

線上環(huán)境的代碼打包編譯怎么處理?
在構(gòu)建的流程中,加入一個(gè)babel-processor的流程即可,加入的時(shí)機(jī)需要是在模塊壓縮合并前,其實(shí)就是越早越好。

ES6的新特性哪些適合使用?
我們參考
使用ES6進(jìn)行開發(fā)的思考

arrows ★★★
classes ★★★
enhanced object literals ★★★
template strings ★★★
destructuring ★★
default + rest + spread ★★★
let + const ★★★
iterators + for..of ★★
generators ★
unicode ☆
modules ★★
module loaders ☆
map + set + weakmap + weakset ★★
proxies ☆
symbols ★
subclassable built-ins ☆
promises ★★★
math + number + string + array + object APIs ★★★
binary and octal literals ★
reflect api ☆
tail calls ★★

文章推薦的新特性,僅使用三星的。

另外推薦閱讀探秘ES6 系列

ES6的新特性是否通過babel轉(zhuǎn)換后還有兼容問題?
團(tuán)隊(duì)中又同學(xué)正在驗(yàn)證,我們驗(yàn)證的環(huán)境是IE9+,ff,chrome,我們最終會(huì)使用三星特性加上兼容性ok的。

開發(fā)效率是否會(huì)有提高?
后面會(huì)通過做一個(gè)小的新需求,或者重構(gòu)一個(gè)小模塊去驗(yàn)證。

編譯器高亮支持?
sublime Text 下面
https://github.com/babel/babel-sublime
或者
https://github.com/voronianski/oceanic-next-color-scheme

其實(shí)問題就這么多,比想象中簡單許多,未來可能還有坑,但是至少我們開始嘗試了。

紅利

語法有問題時(shí),編譯報(bào)錯(cuò)——語法檢查

面向未來——未來很多源碼都是預(yù)編譯類型

開闊前端思路

能讀懂以后牛逼框架的源碼, angular2 使用typescript

微信公眾號(hào)

博客地址

http://tangguangyao.github.io/

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

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

相關(guān)文章

  • ES6解決了什么問題

    摘要:異步編程前異步編程的解決方式回調(diào)函數(shù)事件監(jiān)聽發(fā)布訂閱自定義提供了原生的對(duì)象,統(tǒng)一了用法和標(biāo)準(zhǔn)。如果不設(shè)置回調(diào)函數(shù),或在中再次拋出錯(cuò)誤。函數(shù)內(nèi)部語句返回的值,會(huì)成為方法回調(diào)函數(shù)的參數(shù)。 ECMAScript 6.0于2015 年 6 月正式發(fā)布了,成為JavaScript 語言的下一代標(biāo)準(zhǔn)。ES6增加的語言特性解決了哪些問題,會(huì)給開發(fā)者哪些便利,是本文主要探討的問題。 增加了對(duì)unico...

    zzzmh 評(píng)論0 收藏0
  • JS常見模塊化規(guī)范(CommonJS/AMD/CMD/UMD/ES6 Module)

    摘要:常見模塊化方案是由社區(qū)提出的模塊化方案中的一種,遵循了這套方案。是模塊化規(guī)范中的一種,遵循了這套規(guī)范。中的模塊化能力由兩個(gè)命令構(gòu)成和,命令用于規(guī)定模塊的對(duì)外接口,命令用于輸入其他模塊提供的功能。 為什么需要模塊化 在ES6出現(xiàn)之前,JS語言本身并沒有提供模塊化能力,這為開發(fā)帶來了一些問題,其中最重要的兩個(gè)問題應(yīng)當(dāng)是全局污染和依賴管理混亂。 // file a.js var name =...

    walterrwu 評(píng)論0 收藏0
  • ES6-class、模塊化在vue中應(yīng)用(10)

    摘要:我們?cè)谥拔恼屡c面向?qū)ο缶幊讨校f到了目前大部分框架和庫,都采用了面向?qū)ο蠓绞骄幊獭D敲淳唧w是怎么樣應(yīng)用的呢面向?qū)ο缶幊蹋畹湫秃妥罨A(chǔ)的作用就是封裝,封裝的好處就是代碼的能夠復(fù)用,模塊化,進(jìn)行項(xiàng)目和文件的組織。模塊化在中的應(yīng)用。 我們?cè)谥拔恼隆禘S6 class與面向?qū)ο缶幊獭分校f到了目前大部分框架和庫,都采用了面向?qū)ο蠓绞骄幊獭D敲淳唧w是怎么樣應(yīng)用的呢?面向?qū)ο缶幊蹋畹湫秃妥?..

    endiat 評(píng)論0 收藏0
  • javascript中為什么我們不能直接使用export?

    摘要:我們可以認(rèn)為,宏任務(wù)中還有微任務(wù)這里不再多做解釋可能會(huì)執(zhí)行的代碼包括腳本模塊和函數(shù)體。聲明聲明永遠(yuǎn)作用于腳本模塊和函數(shù)體這個(gè)級(jí)別,在預(yù)處理階段,不關(guān)心賦值的部分,只管在當(dāng)前作用域聲明這個(gè)變量。 相信很多人最開始時(shí)都有過這樣的疑問假如我的項(xiàng)目目錄下有一個(gè) index.html, index.js 于是我像這樣寫 在瀏覽器之間打開index.html,發(fā)現(xiàn)showImg(https://...

    URLOS 評(píng)論0 收藏0
  • Javascript模塊全攬

    摘要:要求模塊編寫必須在真正的代碼之外套上一層規(guī)定的代碼包裝,樣子看起來是這樣的模塊代碼通過傳遞一個(gè)簽名為的回調(diào)函數(shù)給函數(shù),就可以把需要注入的變量和函數(shù)注入到模塊代碼內(nèi)。 之前寫的文章急速Js全棧教程得到了不錯(cuò)的閱讀量,霸屏掘金頭條3天,點(diǎn)贊過千,閱讀近萬,甚至還有人在評(píng)論區(qū)打廣告,可見也是一個(gè)小小的生態(tài)了;)。看來和JS全棧有關(guān)的內(nèi)容,還是有人頗有興趣的。 showImg(https://...

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

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

0條評(píng)論

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