国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

模塊化

這篇具有很好參考價值的文章主要介紹了模塊化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、目標(biāo)

  • 能夠說出模塊化的好處
  • 能夠知道CommonJS規(guī)定了哪些內(nèi)容
  • 能夠說出Node.js中模塊的三大分類各自是什么
  • 能夠使用npm管理包
  • 能夠了解什么是規(guī)范的包結(jié)構(gòu)
  • 能夠了解模塊的加載機制

二、目錄

  • 模塊化的基本概念
  • Node.js中模塊的分類
  • npm與包
  • 模塊的加載機制

1.模塊化的基本概念

1.1什么是模塊化

模塊化是指解決一個復(fù)雜問題時,自頂向下逐層把系統(tǒng)劃分成若干模塊的過程。對于整個系統(tǒng)來說,模塊式可組合、可分解和更換的單元。

1.現(xiàn)實生活中的模塊化

模塊化

?2.編程領(lǐng)域中的模塊化

編程領(lǐng)域中的模塊化,就是遵守固定的規(guī)則,把一個大文件拆成獨立并互相依賴的多個小模塊

模塊化

?1.2模塊化規(guī)范

模塊化

?2.Node.js中的模塊化

2.1Node.js中模塊的分類

Node.js中根據(jù)模塊來源不同,將模塊分為3大類,分別是:

  • 內(nèi)置模塊(內(nèi)置模塊是由Node.js官方提供的,例如fs、path、http等)
  • 自定義模塊(用戶創(chuàng)建的每個.js文件,都是自定義模塊)
  • 第三方模塊由第三方開發(fā)出來的模塊,并非官方提供的內(nèi)置模塊,也不是用戶創(chuàng)建的自定義模塊,使用前需要先下載

2.2加載模塊

使用強大的require()方法,可以加載需要的內(nèi)置模塊、用戶自定義模塊、第三方模塊進行使用。例如:

模塊化

?注意:①使用require()方法加載其他模塊時,會執(zhí)行被加載模塊中的代碼。

②在使用require加載用戶自定義模塊期間,可以省略.js的后綴名

2.3Node.js中的模塊作用域

1.什么是模塊作用域

函數(shù)作用域類似,在自定義模塊中定義的變量、方法等成員,只能在當(dāng)前模塊內(nèi)被訪問,這種模塊級別的訪問限制,叫做模塊作用域。

模塊化

2.模塊作用域的好處

?2.4向外共享模塊作用域中的成員

1.module對象

在每個.js自定義模塊中都有一個moudule對象,它里面存儲了和當(dāng)前模塊有關(guān)的信心,打印如下:

模塊化

2.module.exports對象

在自定義模塊中,可以使用module.exports對象,將模塊內(nèi)的成員共享出去,供外界使用。

外界用require()方法導(dǎo)入自定義模塊時,得到的就是module.exports所指的對象?

//在一個自定義模塊中,默認(rèn)情況下,module。exports={}
//向module.exports對象上掛栽username屬性
module.exports.username = 'zs'
    //向module.exports對象上掛栽sayHello方法
module.exports.sayHello = function() {
    console.log('大家好,我是' + username)
}
//在外界使用require導(dǎo)入一個自定義模塊的時候,得到的成員,
//就是那個模塊中,通過module.exports指向的那個對象
const m1 = require('./06.mi')
console.log(m1)

3.共享成員時的注意點

模塊化

?4.exports對象

由于module.exports單詞寫起來比較復(fù)雜,為了簡化向外共享成員的代碼,Node提供了exports對象。默認(rèn)情況下,exports和module.exports指向同一個對象。最終共享的結(jié)果,還是以module.exports指向的對象為準(zhǔn)。

模塊化

?最終,向外共享的結(jié)果,永遠都是module.exports所指向的對象

4.exports和module.exports的使用誤區(qū)

時刻謹(jǐn)記,require()模塊時,得到的永遠是module.exports指向的對象:

如果給module.exports賦值一個新對象,則會以最后復(fù)制的新對象為主(因為module.export本身就是一個對象,賦值一個新對象覆蓋了本身的對象);如果給module.export賦值一個屬性,則會加入到本身對象里面;永遠以module.export所賦值為主;

模塊化

?

模塊化?模塊化

模塊化

?模塊化

?注意:為了防止混亂,建議大家不要在同一個模塊中同時使用exports和module.exports

2.5 Node,js中的模塊化規(guī)范

Node,js遵循了CommonJS模塊化規(guī)范,CommonJS規(guī)定了模塊的特性各模塊之間如何相互依賴。

CommonJS規(guī)定:

①每個模塊內(nèi)部,module變量代表當(dāng)前模塊

②module變量是一個對象,它的exports屬性(即module.exports是對外的接口

③加載某個模塊,其實是加載該模塊的module.exports屬性。require()方法用于加載模塊文章來源地址http://www.zghlxwxcb.cn/news/detail-463510.html

到了這里,關(guān)于模塊化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • js 模塊化

    模塊化主要是用來抽離公共代碼,隔離作用域,避免變量沖突等。 模塊化的整個發(fā)展歷史如下: IIFE :使用自執(zhí)行函數(shù)來編寫模塊化,特點:在一個單獨的函數(shù)作用域中執(zhí)行代碼,避免代碼沖突。 AMD :使用 require 來編寫模塊化,特點:依賴必須提前聲明好。 CMD :使用 seaJS

    2024年02月14日
    瀏覽(19)
  • 模塊化規(guī)范

    模塊化規(guī)范

    常用模塊化有兩種規(guī)范,commonJS和ES6 我們常遇到的使用場景是,在commonJS的模塊里需要引入ES6規(guī)范的模塊。這時就需要把ES6模塊轉(zhuǎn)譯為commonJS規(guī)范的模塊,否則報錯 轉(zhuǎn)義工具有: Babel:Babel 是一個流行的 JavaScript 編譯器,它可以將 ES6 模塊轉(zhuǎn)譯為 CommonJS 模塊。你可以使用 Bab

    2024年02月15日
    瀏覽(26)
  • 前端模塊化

    前端模塊化

    ? 隨著前端應(yīng)用的日益復(fù)雜,我們的項目代碼已經(jīng)逐漸膨脹到了不得不花大量時間去管理的程度了。而模塊化就是一種最主流的代碼組織方式,它通過把復(fù)雜的代碼按照功能的不同劃分為不同的模塊單獨維護,從而提高開發(fā)效率、降低維護成本。模塊化可以使你能夠更容易地

    2024年02月08日
    瀏覽(116)
  • Vuex模塊化管理

    Vuex模塊化管理

    如果你的項目是一個小型項目,就用不著使用模塊化; 但是,如果你參與的項目是一個中大型項目,那Vuex模塊化,必不可少,否則整個文件很臃腫,也很難管理。 通過模塊化管理:各自模塊下都有自己的state及方法,各自模塊管理自己的數(shù)據(jù),這樣不容易造成混亂。 第一步

    2024年02月15日
    瀏覽(22)
  • 模塊化

    模塊化

    能夠說出模塊化的好處 能夠知道CommonJS規(guī)定了哪些內(nèi)容 能夠說出Node.js中模塊的三大分類各自是什么 能夠使用npm管理包 能夠了解什么是規(guī)范的包結(jié)構(gòu) 能夠了解模塊的加載機制 模塊化的基本概念 Node.js中模塊的分類 npm與包 模塊的加載機制 1.1什么是模塊化 模塊化 是指解決一個

    2024年02月06日
    瀏覽(12)
  • webpack(一)模塊化

    webpack(一)模塊化

    階段一:基于文件的劃分模塊方式 概念 :將每個功能和相關(guān)數(shù)據(jù)狀態(tài)分別放在單獨的文件里 約定每一個文件就是一個單獨的模塊,使用每個模塊,直接調(diào)用這個模塊的成員 缺點 :所有的成員都可以在模塊外被訪問和修改(所有的模塊都是直接在全局工作,沒有【私有空間

    2024年02月11日
    瀏覽(26)
  • js模塊化開發(fā)

    js模塊化開發(fā)

    ? 到底什么是模塊化、模塊化開發(fā)呢? ? 事實上模塊化開發(fā)最終的目的是將程序劃分成一個個小的結(jié)構(gòu); ? 這個結(jié)構(gòu)中編寫屬于自己的邏輯代碼,有自己的作用域,定義變量名詞時不會影響到其他的結(jié)構(gòu); ? 這個結(jié)構(gòu)可以將自己希望暴露的變量、函數(shù)、對象等導(dǎo)出給其結(jié)

    2024年02月13日
    瀏覽(28)
  • Rust的模塊化

    Rust的模塊化要從Rust的入口文件談起。 Rust的程序的入口文件有兩個 如果程序類型是可執(zhí)行應(yīng)用,入口文件是main.rs; 如果程序類型是庫,入口文件是lib.rs; 入口文件中,必須聲明本地模塊,否則編譯器在編譯過程中,會報該模塊不存在的錯誤。這個規(guī)則,在其它程序的編譯

    2024年02月09日
    瀏覽(26)
  • 解構(gòu)模塊化區(qū)塊鏈

    在可擴展性方面,模塊化區(qū)塊鏈?zhǔn)菂^(qū)塊鏈設(shè)計的最新范式。 模塊化的概念起源于Layer1區(qū)塊鏈Celestia,現(xiàn)在這個概念也逐漸被更多的人所關(guān)注,還有人甚至提出”模塊化區(qū)塊鏈將定義Web3創(chuàng)新的下一個十年“的口號。 但是,到底什么是模塊化區(qū)塊鏈,它到底能解決什么問題,它

    2024年02月01日
    瀏覽(25)
  • JavaScript模塊化

    JavaScript模塊化,讓我們通過一個實際的例子來更好地理解。 假設(shè)我們正在開發(fā)一個簡單的購物車應(yīng)用,需要實現(xiàn)計算商品總價和展示購物車列表的功能。我們可以將這個應(yīng)用劃分為兩個模塊:`cart.js`和`main.js`。 1. cart.js模塊: ```javascript // cart.js // 定義一個私有變量,用于存

    2024年02月14日
    瀏覽(42)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包