ES6模塊化學習

1. 回顧:node.js 中如何實現模塊化

node.js 遵循了 CommonJS 的模塊化規范。其中:
????????導入其它模塊使用 require() 方法
????????模塊對外共享成員使用 module.exports 對象

模塊化的好處: 大家都遵守同樣的模塊化規范寫代碼,降低了溝通的成本,極大方便了各個模塊之間的相互調用,利人利己。

2. 前端模塊化規范的分類

在 ES6 模塊化規范誕生之前,JavaScript 社區已經嘗試并提出了 AMD、CMD、CommonJS 等模塊化規范。
但是,這些由社區提出的模塊化標準,還是存在一定的差異性與局限性、并不是瀏覽器與服務器通用的模塊化標準,例如:
????????AMD 和 CMD 適用于瀏覽器端的 Javascript 模塊化
????????CommonJS 適用于服務器端的 Javascript 模塊化

太多的模塊化規范給開發者增加了學習的難度與開發的成本。因此,大一統的 ES6 模塊化規范誕生了!

3. 什么是 ES6 模塊化規范

ES6 模塊化規范是瀏覽器端與服務器端通用的模塊化開發規范。它的出現極大的降低了前端開發者的模塊化學習成本,開發者不需再額外學習 AMD、CMD 或 CommonJS 等模塊化規范。

ES6 模塊化規范中定義:
????????每個 js 文件都是一個獨立的模塊?
????????導入其它模塊成員使用 import 關鍵字 ?
????????向外共享模塊成員使用 export 關鍵字

4. 在 node.js 中體驗 ES6 模塊化

node.js 中默認僅支持 CommonJS 模塊化規范,若想基于 node.js 體驗與學習 ES6 的模塊化語法,可以按照如下兩個步驟進行配置:
????????①確保安裝了 v14.15.1 或更高版本的 node.js (node -v?查看node版本)
????????②在 package.json 的根節點中添加
"type":?"module" 節點npm init -y 初始化包管理配置文件,注意:初始化包管理配置文件的時候,文件名不能是中文

5. ES6 模塊化的基本語法

ES6 的模塊化主要包含如下 3 種用法:
????????①默認導出與默認導入
????????②按需導出與按需導入
????????③直接導入并執行模塊中的代碼

5.1 默認導出與默認導入

①默認導出

????????默認導出的語法: export default 默認導出的成員

?默認導出的注意事項每個模塊中,只允許使用唯一的一次 export default,否則會報錯!

②默認導入

????????默認導入的語法: import 接收名稱 from '模塊標識符'

默認導入的注意事項:默認導入時的接收名稱可以任意名稱,只要是合法的成員名稱即可:


③按需導出

????????按需導出的語法: export 按需導出的成員

④按需導入

????????按需導入的語法: import { s1 } from '模塊標識符'


按需導出與按需導入的注意事項:
????????每個模塊中可以使用多次按需導出?
????????按需導入的成員名稱必須和按需導出的名稱保持一致?
????????按需導入時,可以使用 as 關鍵字進行重命名?
????????按需導入可以和默認導入一起使用

⑤直接導入并執行模塊中的代碼

如果只想單純地執行某個模塊中的代碼,并不需要得到模塊中向外共享的成員。此時,可以直接導入并執行模塊代碼,示例代碼如下:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/41490.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41490.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/41490.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 時區文件格式【man 5 tzfile】

時區文件格式標準:https://datatracker.ietf.org/doc/html/rfc8536 1. NAME(名) tzfile - 時區文件。(非文本文件) 2. DESCRIPTION(描述) 本頁介紹被 tzset(3) 函數使用的時區文件的結構。這…

006 線程安全

文章目錄 臨界資源線程安全基本概念*何謂競態條件**何謂線程安全* 對象的安全局部基本類型變量局部的對象引用對象成員(成員變量) 不可變性 臨界資源 臨界資源是一次僅允許一個進程使用的共享資源。各進程采取互斥的方式,實現共享的資源稱作臨界資源。屬于臨界資源…

如何使用GPT進行科研:詳細指令指南

如何使用GPT進行科研:詳細指令指南 隨著GPT模型的流行,越來越多的科研人員開始利用這項技術來輔助科學研究,特別是在文本處理任務如論文翻譯、文本潤色和降低抄襲率方面。本文將提供詳細的指令,幫助科研人員有效地使用GPT進行科研…

計算機相關專業入門,高考假期預習指南

一:學習資源推薦 跟著b站的“黑馬程序員”學c,黑馬程序員匠心之作|C教程從0到1入門編程,學習編程不再難_嗶哩嗶哩_bilibili,把這個編程語言基礎打好,然后看“藍橋杯算法”,到了大一直接就能打藍橋杯比賽了 看完上面的 …

TRILL簡介

介紹TRILL的定義及目的。 定義 TRILL(Transparent Interconnection of Lots of Links)是一種把三層鏈路狀態路由技術應用于二層網絡的協議。TRILL通過擴展IS-IS路由協議實現二層路由,可以很好地滿足數據中心大二層組網需求,為數據中心業務提供解決方案…

用數組手搓一個小頂堆

堆默認從數組下標為1開始存儲。 const int N201000; int heap[N]; int len; 插入操作: 將元素插入到堆的末尾位置向上調整。 void up(int k){while(k>1&&heap[k/2]>heap[k]){swap(heap[k],heap[k/2]);k/2;} } //len為當前存在元素長度 void Inser…

水利水庫大壩結構安全自動化監測主要測哪些內容?

在大壩安全自動化監測系統建設中,應根據壩型、壩體結構和地質條件等因素選定監測項目;主要監測對象包括壩體、壩基及有關的各種主要水工建筑物、大壩附近的不穩定岸坡和大壩周邊的氣象環境。深圳安銳科技建議參考下列表格適當調整。 (一&am…

計算機網絡(2

計算機網絡續 一. 網絡編程 網絡編程, 指網絡上的主機, 通過不同的進程, 以編程的方式實現網絡通信(或網絡數據傳輸). 即便是同一個主機, 只要不同進程, 基于網絡來傳輸數據, 也屬于網絡編程. 二. 網絡編程套接字(socket) socket: 操作系統提供的網絡編程的 API 稱作 “soc…

(0)2024年基于財務的數據科學項目Python編程基礎(Jupyter Notebooks)

目錄 前言學習目標:學習內容:大綱 前言 隨著數據科學的迅猛發展,其在財務領域的應用也日益廣泛。財務數據的分析和預測對于企業的決策過程至關重要。 本專欄旨在通過Jupyter Notebooks這一強大的交互式計算工具,介紹基于財務的數…

【車載開發系列】常見單片機調試接口的區別

【車載開發系列】常見單片機調試接口的區別 【車載開發系列】常見單片機調試接口的區別 【車載開發系列】常見單片機調試接口的區別一. JTAG協議二. SWD接口三. RDI接口四. 仿真器1)J-Link仿真器2)ULink仿真器3)ST-LINK仿真器 五. SWD / JTAG…

Day05-組織架構-角色管理

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 1.組織架構-編輯部門-彈出層獲取數據2.組織架構-編輯部門-編輯表單校驗3.組織架構-編輯部門-確認取消4.組織架構-刪除部門5.角色管理-搭建頁面結構6.角色管理-獲取數…

MySQL中的DDL語句

第一題 輸入密碼登錄mysql,創建數據庫zoo,轉換到zoo數據庫, mysql> create database zoo character set gbk; mysql> use zoo查看創建數據庫zoo信息 mysql> show create database zoo;刪除數據庫zoo mysql> drop database zo…

【后端面試題】【中間件】【NoSQL】MongoDB查詢優化2(優化排序、mongos優化)

優化排序 在MongoDB里面,如果能夠利用索引來排序的話,直接按照索引順序加載數據就可以了。如果不能利用索引來排序的話,就必須在加載了數據之后,再次進行排序,也就是進行內存排序。 可想而知,如果內存排序…

【居家養老實訓室】:看中醫保健在養老中的應用

本文以居家養老實訓室為視角,深入探討了中醫保健在養老中的應用。通過對中醫保健理念、常用方法以及在居家養老中的具體實踐進行分析,闡述了其在改善老年人健康狀況、提高生活質量方面的重要作用。同時,也指出了目前應用中存在的問題&#xf…

Apache Kylin模型構建全解析:深入理解大數據的多維分析

引言 Apache Kylin是一個開源的分布式分析引擎,旨在為大數據提供快速的多維分析能力。它通過預計算技術,將數據轉化為立方體模型(Cube),從而實現對Hadoop大數據集的秒級查詢響應。本文將詳細介紹Kylin中模型構建的全過…

Windchill的Debug配置

在windchillshell中運行以下命令 xconfmanager -s "wt.manager.cmd.MethodServer.debug.args- agentlib:jdwptransportdt_socket,servery,suspendn,address0.0.0.0:{19}" -p - t codebase/wt.properties xconfmanager -s "wt.manager.cmd.MethodServer.param.19…

2024暑假集訓第三次考試

3004. Sleepy Cow Sorting 思路分析 這道題是一道思維題。 這個就要結合之前學習過的算法,看這個題目的排序方式,我們就理所當然的想到了插入排序,也是這道題的正解。只需要看看前面有幾個數是無序的就是需要排的次數。轉換一下,也…

【第19章】MyBatis-Plus自定義ID生成器

文章目錄 前言一、如何自定義二、Spring Boot 集成1. 方式一:聲明為Bean供Spring掃描注入2. 方式二:使用配置類3. 方式三:通過MybatisPlusPropertiesCustomizer自定義 三、Spring 集成1. 方式一:XML配置2. 方式二:注解…

【CUDA】 矩陣乘法 matMatMul

矩陣乘法 matMatMul 矩陣乘法是基本線性代數子程序(BLAS)的重要組成部分,而且線性代數中許多其他操作以此為基礎。 圖1是兩個矩陣的乘法。 基礎方法,正方形tile和長方形tile 基礎方法 執行矩陣乘法的基礎方法是使用單個線程執…

Linux上web服務器搭建(Apache、Nginx)

第五章 web服務器 第一節 DNS:對域名進行解析,查詢對應的地址 1.1 web服務器簡介 www是world wide web的縮寫,也就是全球信息廣播的意思 1.2.網址及HTTP簡介 web服務器提供的這些數據大部分都是文件,那么我們需要在服務器端…