ES6從入門到精通:模塊化

ES6 模塊化基礎概念

ES6 模塊化是 JavaScript 官方標準,通過 importexport 語法實現代碼拆分與復用。模塊化特點包括:

  • 每個文件是一個獨立模塊,作用域隔離。
  • 支持靜態分析,依賴關系在編譯時確定。
  • 輸出的是值的引用(動態綁定)。

導出模塊(export)

導出方式分為 命名導出默認導出

// 命名導出(可多個)
export const name = 'Module';
export function calculate() { /* ... */ }// 批量命名導出
const data = { value: 1 };
export { data };// 默認導出(僅一個)
export default class MainComponent { /* ... */ }

導入模塊(import)

根據導出方式選擇對應導入語法:

// 導入命名導出
import { name, calculate } from './module.js';// 導入時重命名
import { data as dataset } from './module.js';// 導入默認導出(無需花括號)
import MainComponent from './module.js';// 混合導入
import DefaultExport, { namedExport } from './module.js';// 動態導入(按需加載)
const module = await import('./module.js');

模塊路徑規則

  • 相對路徑./../ 開頭,如 './utils.js'
  • 絕對路徑:基于項目根目錄的完整路徑(需工具配置支持)。
  • 第三方模塊:直接寫包名,如 'lodash'

模塊化高級用法

重新導出:在入口文件整合多個模塊

export { Button } from './components/Button.js';
export * as utils from './utils.js';

聚合模塊:使用 import * as 導入全部命名導出

import * as math from './math.js';
math.sum(1, 2);

注意事項

  • 模塊腳本需在 HTML 中聲明 type="module"
    <script type="module" src="main.js"></script>
    

  • 瀏覽器環境需通過服務器訪問(本地文件協議不支持 CORS)。
  • Node.js 需在 package.json 設置 "type": "module" 或使用 .mjs 后綴。

常見工具鏈支持

  • Babel:將 ES6 模塊轉譯為 CommonJS 格式。
  • Webpack/Rollup:打包模塊并處理依賴樹。
  • ESLint:檢查模塊化語法規范。

通過系統化實踐,ES6 模塊化能顯著提升代碼可維護性和協作效率。

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

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

相關文章

stm32 USART串口協議與外設——江協教程踩坑經驗分享

江協stm32學習&#xff1a;9-1~9-3 USART串口協議與外設 一、串口通信基礎知識 1、通信類型&#xff1a; 全雙工通信&#xff1a;通信雙方能夠同時進行雙向通信。一般有兩根通信線&#xff0c;如USART中的TX&#xff08;發送&#xff09;和RX&#xff08;接收&#xff09;線&am…

深度學習中的一些名詞

向前傳播 forward pass 在機器學習中&#xff0c;輸入的feature, 通過預測模型&#xff0c;輸出預測值&#xff0c;此過程稱之為向前傳播&#xff1b; 向后傳播 backward pass 為了將預測與真實值的產值減小&#xff0c;需要根據差值&#xff0c;更新模型中的參數&#xff0c;此…

鴻蒙系統(HarmonyOS)應用開發之手勢鎖屏密碼鎖(PatternLock)

項目概述 基于鴻蒙&#xff08;OpenHarmony&#xff09;平臺開發的手勢密碼鎖應用&#xff0c;旨在為用戶提供安全、便捷且具有良好交互體驗的身份驗證方式。通過手勢圖案輸入&#xff0c;用戶可以輕松設置和驗證密碼&#xff0c;提升設備的安全性和個性化體驗。 功能特點 手…

vue文本插值

好的&#xff0c;我們來詳細講解 Vue 中最基礎的數據展示方式&#xff1a;文本插值和在其內部使用的 JavaScript 表達式。 1. 文本插值 (Text Interpolation) 知識點: 文本插值是 Vue 中最基本的數據綁定形式。它使用“Mustache”語法&#xff08;雙大括號 {{ }}&#xff09;…

Python:線性代數,向量內積諧音記憶。

目錄1 先說結論2 解釋3 歡迎糾錯4 論文寫作/Python 學習智能體------以下關于 Markdown 編輯器新的改變功能快捷鍵合理的創建標題&#xff0c;有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個表格設定內容居中、居左、…

小程序導航設置更多內容的實現方法

在小程序中實現導航欄設置更多內容&#xff0c;可以通過以下幾種方式實現&#xff1a; 1. 使用原生導航欄自定義按鈕 javascript // app.json 或頁面.json中配置 {"navigationBarTitleText": "首頁","navigationBarTextStyle": "black&q…

SpringBoot 解決配置文件有黃色波浪線

在application.properties配置文件中有黃色波浪線&#xff0c;是警告!! 原因&#xff1a;編碼格式不一致&#xff01;&#xff01; 解決&#xff1a;Settings| Editor | File Encodings | 選擇UTF-8

在 Vue 3 中全局使用 Suspense 組件

Suspense 是 Vue 3 引入的一個內置組件&#xff0c;不需要引用可以直接用。用于處理異步依賴的等待狀態。雖然 Suspense 主要用于異步組件&#xff0c;但你也可以全局地使用它來管理整個應用的加載狀態。 全局 Suspense 的基本用法 1. 在根組件中使用 Suspense // main.js 或…

筆記/計算機網絡

Content 計算機網絡部分核心概念十大網絡協議一覽 計算機網絡部分核心概念 1. 什么是計算機網絡&#xff1f;它最基本的功能是什么&#xff1f; 計算機網絡是指通過某種傳輸介質將多臺獨立的計算機或設備連接起來&#xff0c;實現數據交換和資源共享的系統。其最基本的功能是數…

時頻圖數據集更正程序,去除坐標軸白邊及調整對應的標簽值

當數據集是時頻圖時可能有一個尷尬的問題&#xff0c;就是數據集制作好后&#xff0c;發現有白邊。 其實這也不影響訓練模型&#xff0c;可能對模型訓練效果的影響也是微乎其微的&#xff0c;于是大多數情況我會選擇直接用整張圖片訓練模型。但是&#xff0c;有的情況下&#x…

mv重命名報錯:bash:未預期的符號 ‘(‘附近有語法錯誤

文章目錄 一、報錯背景二、解決方法2.1、方法一&#xff1a;文件名加引號2.2、方法二&#xff1a;特殊字符前加\進行轉義 一、報錯背景 在linux上對一文件執行重命名時報錯。原因是該文件名包含空格與括號。 文件名如下&#xff1a; aa &#xff08;1).txt執行命令及報錯如下…

Unity-MMORPG內容筆記-其三

繼續之前的內容&#xff1a; 戰斗系統 無需多言&#xff0c;整個項目中最復雜的部分&#xff0c;也是代碼量最大的部分。 屬性系統 首先我們要定義一系列屬性&#xff0c;畢竟所謂的戰斗就是不斷地扣血對吧。 屬性系統是戰斗系統的核心模塊&#xff0c;負責管理角色的所有…

Linux入門篇學習——Linux 幫助手冊

目錄 一、Linux 幫助手冊 1.怎么打開幫助手冊 2.安裝依賴 3.使用手冊查看命令 一、Linux 幫助手冊 1.怎么打開幫助手冊 打開 ubuntu &#xff0c;輸入 man 命令打開幫助手冊&#xff0c;直接在控制臺輸入 man 就可以了&#xff0c; man 手冊一共有 9 頁&#xff0c…

2025年后端主流框架對比和競爭格局及趨勢發展

2025年的后端開發呈現出云原生主導、性能革命、AI深度融合的技術格局&#xff0c;主流框架在細分領域持續分化&#xff0c;新興技術快速滲透關鍵場景。以下是基于行業實踐與技術演進的深度解析&#xff1a; 一、主流框架競爭態勢與核心能力 1. Java生態&#xff1a;企業級市場的…

bRPC簡介

bRPC基礎介紹。 什么是RPC? 互聯網上的機器大都通過TCP/IP協議相互訪問&#xff0c;但TCP/IP只是往遠端發送了一段二進制數據&#xff0c;為了建立服務還有很多問題需要抽象&#xff1a; 數據以什么格式傳輸&#xff1f;不同機器間&#xff0c;網絡間可能是不同的字節序&am…

力扣網C語言編程題:在數組中查找目標值位置之二分查找法

一. 簡介 上一篇文章對力扣網上"有序數組中查找目標值范圍"題目進行了普通的解法。文章如下&#xff1a; 力扣網C語言編程題&#xff1a;在數組中查找目標值位置之暴力解法-CSDN博客 本文使用二分查找法進行實現&#xff0c;因為二分查找法符合題目要求&#xff0…

前端查詢條件加密傳輸方案(SM2加解密)

一、需求背景 控臺項目甲方進行安全測試&#xff0c;測試報告其中一條&#xff1a;敏感信息明文傳輸 1 敏感信息明文傳輸 中危 查詢接口傳輸手機號、銀行卡號等敏感信息時未加密/脫敏處理。 二、解決方案 討論出的方案是通過前端查詢條件加密&#xff0c;后端對加密的…

【Python】Flask網頁

Flask第三方庫安裝命令&#xff1a;pip install flask代碼&#xff1a;from flask import Flask app Flask(__name__)app.route("/") def hello():return "Hello world!"if __name__ "__main__":app.run()其中的"Hello world!"可以改…

數字資產革命中的信任之錨:RWA法律架構的隱形密碼

首席數據官高鵬團隊律師創作&#xff0c;AI輔助 在數字經濟的浪潮中&#xff0c;資產的邊界正在被重新定義。當一塊地產、一筆應收賬款、甚至一份碳配額被轉化為鏈上的數字代幣時&#xff0c;技術的光芒固然耀眼&#xff0c;但真正決定其生命力的&#xff0c;是背后隱匿的“信…

mobaxterm終端sqlplus亂碼問題解決

背景。使用mobaxterm終端連接linux。在查詢數據庫表注釋時發現**&#xff1f;**中文亂碼。影響對表的分析。完成以下三個編碼設置再打開sqlplus查詢含中文的數據就正常了 總結。需要查看sqlplus的編碼是什么 SELECT parameter, value FROM nls_database_parameters WHERE pa…