成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ES 標準模塊化規范概述和導入導出

開發 前端
歷史上,JavaScript 一直沒有模塊(module)體系,無法將一個大程序拆分成互相依賴的小文件,再用簡單的方法拼裝起來。其他語言都有這項功能,比如 Ruby 的require、Python 的 import,甚至就連 CSS 都有@import,但是 JavaScript 任何這方面的支持都沒有,這對開發大型的、復雜的項目形成了巨大障礙。

[[405075]]

本文轉載自微信公眾號「勾勾的前端世界」,作者西嶺。轉載本文請聯系勾勾的前端世界公眾號。

ES 標準模塊化規范-概述

歷史上,JavaScript 一直沒有模塊(module)體系,無法將一個大程序拆分成互相依賴的小文件,再用簡單的方法拼裝起來。其他語言都有這項功能,比如 Ruby 的require、Python 的 import,甚至就連 CSS 都有@import,但是 JavaScript 任何這方面的支持都沒有,這對開發大型的、復雜的項目形成了巨大障礙。

在 ES6 之前,社區制定了一些模塊加載方案,最主要的有 CommonJS 和 AMD 兩種。前者用于服務器,后者用于瀏覽器。ES6 在語言標準的層面上,實現了模塊功能,而且實現得相當簡單,完全可以取代 CommonJS 和 AMD 規范,成為瀏覽器和服務器通用的模塊解決方案。

ES6 模塊的設計思想是盡量的靜態化,使得編譯時就能確定模塊的依賴關系,以及輸入和輸出的變量。CommonJS 和 AMD 模塊,都只能在運行時確定這些東西。比如,CommonJS 模塊就是對象,輸入時必須查找對象屬性。

一個模塊就是一個獨立的文件。該文件內部的所有變量,外部無法獲取。

如果你希望外部能夠讀取模塊內部的某個變量,就必須使用 export 關鍵字導出該變量。想要是要其他模塊導出的內容, 就必須使用 import 導入。

導入 (Importing)

導入的值不能重新分配,盡管導入的對象和數組可以被修改(導出模塊,以及任何其他的導入,都將受到該修改的影響)。在這種情況下,它們的行為與 const 聲明類似。

  • 命名導入 (Named Imports)

從源模塊導入其原始名稱的特定項目。

  1. import  { something } from'./module.js'

從源模塊導入特定項,并在導入時指定自定義名稱。

  1. import { something as somethingElse } from'./module.js'
  • 命名空間導入 (Namespace Imports)

將源模塊中的所有內容作為對象導入,將所有源模塊的命名導出公開為屬性和方法。默認導出被排除在此對象之外。

  1. importas module from'./module.js' 

上面的 “something” 的例子將被附加到作為屬性的導入對象上。

  1. “module.something”。 
  • 默認導入 (Default Import)

導入源文件的默認導出。

  1. import something from'./module.js'
  • 空的導入 (Empty Import)

加載模塊代碼,但不要創建任何新對象。

  1. import './module.js'

這對于 polyfills 是有用的,或者當導入的代碼的主要目的是與原型有關的時候。

導出 (Exporting)

  • 命名導出 (Named exports)

導出具體聲明的值:

  1. var something =true
  2. export { something }; 

在導出時重命名:

  1. export { something as somethingElse }; 

聲明后立即導出:

  1. // 這可以與 `var`, `let`, `const`, `class`, and `function` 配合使用 
  2. exportvar something =true
  • 默認導出(Default Export)

導出一個值作為源模塊的默認導出:

  1. exportdefault something; 

當源模塊只有一個導出時,才建議使用此做法。

將默認和命名導出,并放在同一模塊中是不好的,盡管它是符合規范的。

 

責任編輯:武曉燕 來源: 勾勾的前端世界
相關推薦

2021-07-14 09:26:51

UPS電源模塊化

2012-11-08 09:45:44

JavaScriptrequireJS

2023-07-10 10:21:21

JavaScript模塊化規范

2010-01-21 09:27:30

模塊化的優點NetBeans

2019-08-28 16:18:39

JavaScriptJS前端

2020-12-23 14:18:43

JavaScript模塊導出

2010-08-02 08:54:53

Flex模塊化

2017-04-10 14:23:01

typescriptjavascriptwebpack

2013-08-20 18:18:55

CSS模塊化Normalize.c

2020-09-17 10:30:21

前端模塊化組件

2013-08-20 15:31:18

前端模塊化

2017-05-18 10:23:55

模塊化開發RequireJsJavascript

2015-10-10 11:29:45

Java模塊化系統初探

2022-03-11 13:01:27

前端模塊

2020-09-18 09:02:32

前端模塊化

2021-12-24 07:10:36

架構分層模塊化

2021-12-02 05:57:04

模塊化UPS電源

2018-12-18 11:20:28

前端模塊化JavaScript

2018-03-21 21:31:28

Java9編程Java

2022-09-05 09:01:13

前端模塊化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看亚洲 | 久久精品16 | 91久久国产综合久久91精品网站 | 中文字幕av免费 | 91精品国产欧美一区二区 | 中文字幕不卡视频在线观看 | 日本一区二区不卡视频 | 日韩精品一区二区三区高清免费 | 日韩精品1区2区3区 爱爱综合网 | 91视频在线观看免费 | 久久精品一| a看片| 麻豆a级片| 久久一区 | 日本精品视频 | 伊人青青久久 | 精品久久久久久亚洲精品 | 国产精品视频区 | 成人免费观看男女羞羞视频 | 日韩在线免费视频 | 夜夜骚视频 | 麻豆成人在线视频 | 一级免费在线视频 | 国产成人精品一区二区 | 91麻豆精品国产91久久久更新资源速度超快 | 99精品国产一区二区青青牛奶 | 亚洲人成网亚洲欧洲无码 | 亚洲高清在线 | 精品国产乱码久久久久久老虎 | 久久精品国产免费一区二区三区 | 欧美日韩看片 | 日韩欧美一区二区三区免费观看 | 欧美一区二区三区国产 | 中文精品视频 | 亚洲国产精品视频 | 在线观看国产h | www午夜视频 | 国产高清美女一级a毛片久久w | 丝袜美腿av| 亚洲一级黄色 | 在线观看国产视频 |