欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          nodejs模塊化有什么好處

          nodejs模塊化的好處:1、代碼解耦,可以提高代碼的復(fù)用性;2、可以提高代碼的可維護(hù)性;3、可以提高代碼的可讀性;4、可以實(shí)現(xiàn)按需加載;5、可以解決命名沖突;6、方便管理依賴。

          nodejs模塊化有什么好處

          本教程操作環(huán)境:windows7系統(tǒng)、nodejs 12.19.0版,DELL G3電腦。

          什么是模塊化?

          在編程領(lǐng)域中,模塊化就是遵守固定的規(guī)則,把一個(gè)大文件拆分成獨(dú)立并且相互依賴的多個(gè)小模塊.通俗來講就是一個(gè)js文件可以使用另一個(gè)js文件中的數(shù)據(jù).

          模塊化有什么好處?

          1、代碼解耦,可以提高代碼的復(fù)用性

          2、可以提高代碼的可維護(hù)性

          3、可以提高代碼的可讀性

          4、可以實(shí)現(xiàn)按需加載

          5、可以解決命名沖突

          6、方便管理依賴

          模塊化的產(chǎn)生也帶來了模塊作用域,同函數(shù)作用域相似,在自定義模塊中定義的變量、方法等,只能在當(dāng)前作用域內(nèi)被訪問,這種訪問限制,有效的解決了變量污染的問題。

          模塊規(guī)范

          模塊化規(guī)范就是對(duì)代碼進(jìn)行模塊化的拆分與組合時(shí),需要遵守的那些規(guī)則,例如:

          • 使用什么樣的語法格式來引用模塊

          • 在模塊中使用什么樣的語法格式向外暴露成員

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

          模塊規(guī)范種類:

          • CommonJS 規(guī)范:nodejs中遵守的就是commonjs規(guī)范。

          • ES6 模塊化規(guī)范:(前后端通用的模塊化規(guī)范;Node.js、Vue、React 中都能使用?。?/p>

          • CMD 和 AMD 模塊化規(guī)范(較少使用): CMD–sea.js, AMD-require.js

          • UMD 叫做通用模塊定義規(guī)范(Universal Module Definition),它可以通過運(yùn)行時(shí)或者編譯時(shí)讓同一個(gè)代碼模塊在使用 CommonJs、CMD 甚至是 AMD 的項(xiàng)目中運(yùn)行。它沒有自己專有的規(guī)范,是集結(jié)了 CommonJs、CMD、AMD 的規(guī)范于一身。

            區(qū)別:

            1. 對(duì)于依賴的模塊,AMD 是提前執(zhí)行,CMD 是延遲執(zhí)行。

            2. CMD 推崇依賴就近,AMD 推崇依賴前置。

          nodejs模塊分類

          • 內(nèi)置模塊 — fs(文件系統(tǒng)模塊).path(路徑模塊).http(網(wǎng)絡(luò)操作模塊)…
          const fs = require("fs"); //node提供的基礎(chǔ)模塊,可以直接導(dǎo)入使用
          • 自定義模塊 — 用戶自己創(chuàng)建的.js文件
          const m = require("./js文件名");//注意其中是相對(duì)路徑,后綴名.js可加可不加
          • 第三方模塊 — 由第三方個(gè)人或團(tuán)隊(duì)開發(fā)出來的模塊,通常叫做,使用前需要下載導(dǎo)入
          const moment = require('moment');// 使用前需要通過npm i moment 命令安裝該包

          模塊的導(dǎo)入導(dǎo)出

          導(dǎo)入

          使用require()方法加載模塊

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

          導(dǎo)出

          • 在每個(gè)自定義模塊中都有一個(gè)module對(duì)象,它里面存儲(chǔ)了和當(dāng)前模塊有關(guān)的信息,其中一個(gè)屬性exports可以將模塊成員暴露,供外界使用.加載某個(gè)模塊時(shí)得到的就是module.exports這個(gè)屬性指向的一個(gè)空對(duì)象.
          • 若想使用該模塊中的數(shù)據(jù),可以向module.exports這個(gè)屬性中添加屬性值供外界使用
          • 為了簡(jiǎn)化向外共享成員的代碼,node提供了exports對(duì)象.默認(rèn)情況下,exports和module.exports指向同一個(gè)對(duì)象.

          注意: 使用require()方法導(dǎo)入模塊時(shí),導(dǎo)入的結(jié)果永遠(yuǎn)以module.exports指向的對(duì)象為準(zhǔn)

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

          exports = {     username: 'ls',     gender: '男' } module.exports = exports; module.exports.age = '20'; // 導(dǎo)入后的結(jié)果為 {username:'ls',gender:'男',age:'20'}   exports = {     username: 'ls',     gender: '男' } module.exports.age = '20'; module.exports = exports; // 導(dǎo)入后的結(jié)果為 {username:'ls',gender:'男'}     exports = {     username: 'ls',     gender: '男' } exports = module.exports; module.exports.age = '20'; // 導(dǎo)入后的結(jié)果為 {age:'20'}

          所以使用時(shí)盡量只使用其中一個(gè)方法,避免造成不必要的麻煩

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)