详解ES6模块化和CommonJS模块化的区别
ES6 模块化与 CommonJS 模块化区别
在最近的项目中关于 ES6 的 import、export 和 CommonJS 中的 module.exports、require 的使用傻傻搞不清楚,今天下定决心总结一下,有什么不对的地方,还请诸位多多指教。
ES6 模块化
import
命令用于输入其他模块提供的功能;export
命令用于规定模块的对外接口。
一、 import 与 export
// 导出 a.js /** 写法一 **/ var name = 'sheep' function getSheep() { name = 'hourse' } export {getSheep} // 引入 b.js import {getSheep} from './a.js' /** 写法二 **/ var name = 'sheep' export function getSheep() { name = 'hourse' } // 引入 b.js import {getSheep} from './a.js'
二、 import 与 export defalut
export 可以有多个,export default 仅有一个
// 导出 a.js let obj = { name: 'hello', getName: function (){ return this.name } export default obj // 引入 b.js import obj from './a.js'
CommonJS 模块化
一、 require 与 module.exports
require
在 ES6(bable将import转化为require) 和 CommonJS 中都支持
// 导出 a.js let obj = { name: 'hello', getName: function (){ return this.name } module.exports = obj // 引入 b.js let obj = require('./a.js')
总结
即使我们使用了 ES6 的模块系统,如果借助 Babel 的转换,ES6 的模块系统最终还是会转换成 CommonJS 的规范。
Babel5 中使用 require 时,引入值是 module.export 返回的值或者是 export default 返回的值。
Babel6中,使用 import 引入时,可以直接获取到 export default 的值 ; 但是如果是 require 导入的组件, 无论导出是 module.export 、export 、 export default可以直接获取到 export default 的值都必须要加上一个 default。
参考文献 :
https://www.jianshu.com/p/27ee06296bcd
https://juejin.im/post/5a2e5f0851882575d42f5609
推荐教程:《JS教程》
Atas ialah kandungan terperinci 详解ES6模块化和CommonJS模块化的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



async ialah es7. async dan await ialah penambahan baharu kepada ES7 dan merupakan penyelesaian untuk operasi asynchronous/wait boleh dikatakan sebagai gula sintaktik untuk modul bersama dan fungsi penjana, menyelesaikan kod tak segerak dengan semantik yang lebih jelas. Seperti namanya, async bermaksud "tak segerak".

Cara Mengoptimumkan Kebolehselenggaraan Kod Java: Pengalaman dan Nasihat Dalam proses pembangunan perisian, menulis kod dengan kebolehselenggaraan yang baik adalah penting. Kebolehselenggaraan bermakna kod boleh difahami dengan mudah, diubah suai dan dilanjutkan tanpa menyebabkan masalah yang tidak dijangka atau usaha tambahan. Bagi pembangun Java, cara mengoptimumkan kebolehselenggaraan kod adalah isu penting. Artikel ini akan berkongsi beberapa pengalaman dan cadangan untuk membantu pembangun Java meningkatkan kebolehselenggaraan kod mereka. Mengikuti peraturan penamaan piawai boleh menjadikan kod lebih mudah dibaca.

Python ialah bahasa pengaturcaraan yang mudah, mudah dipelajari dan cekap, tetapi apabila kita menulis kod Python, kita mungkin menghadapi beberapa masalah dengan kerumitan kod yang berlebihan. Jika masalah ini tidak diselesaikan, ia akan menjadikan kod sukar untuk diselenggara, terdedah kepada ralat, dan mengurangkan kebolehbacaan dan kebolehskalaan kod. Jadi, dalam artikel ini, kita akan membincangkan cara menyelesaikan ralat kerumitan kod dalam kod Python. Memahami Kerumitan Kod Kerumitan kod ialah ukuran sifat kod yang sukar difahami dan dikekalkan. Dalam Python, terdapat beberapa penunjuk yang boleh digunakan

Python, sebagai bahasa pengaturcaraan peringkat tinggi, digunakan secara meluas dalam pembangunan perisian. Walaupun Python mempunyai banyak kelebihan, masalah yang sering dihadapi oleh ramai pengaturcara Python ialah kod tersebut kurang boleh diselenggara. Kebolehselenggaraan kod Python termasuk kebolehbacaan, kebolehskalaan dan kebolehgunaan semula kod tersebut. Dalam artikel ini, kami akan memberi tumpuan kepada cara menyelesaikan masalah kebolehselenggaraan kod Python yang lemah. 1. Kebolehbacaan kod Kebolehbacaan kod merujuk kepada kebolehbacaan kod, yang merupakan teras kebolehselenggaraan kod.

Dalam es5, anda boleh menggunakan fungsi for dan indexOf() untuk mencapai deduplikasi tatasusunan Sintaks "for(i=0;i<array length;i++){a=newArr.indexOf(arr[i]);if(. a== -1){...}}". Dalam es6, anda boleh menggunakan operator spread, Array.from() dan Set untuk mengalih keluar penduaan anda perlu terlebih dahulu menukar tatasusunan menjadi objek Set untuk mengalih keluar pendua, dan kemudian menggunakan fungsi spread atau Array.from() untuk tukar objek Set kembali kepada kumpulan Just.

Dalam es6, zon mati sementara ialah ralat sintaks, yang merujuk kepada arahan let dan const yang menjadikan blok membentuk skop tertutup. Dalam blok kod, sebelum pembolehubah diisytiharkan menggunakan perintah let/const, pembolehubah tidak tersedia dan tergolong dalam "zon mati" pembolehubah sebelum pembolehubah diisytiharkan ini secara sintaksis dipanggil "zon mati sementara". ES6 menetapkan bahawa promosi pembolehubah tidak berlaku dalam zon mati sementara dan pernyataan let dan const, terutamanya untuk mengurangkan ralat masa jalan dan menghalang pembolehubah daripada digunakan sebelum ia diisytiharkan, yang mungkin membawa kepada tingkah laku yang tidak dijangka.

Import ES6 akan menyebabkan promosi berubah-ubah. Pengangkat boleh ubah ialah promosi pengisytiharan berubah-ubah ke awal skopnya. js perlu melalui fasa kompilasi dan pelaksanaan Semasa fasa kompilasi, semua pengisytiharan pembolehubah akan dikumpul dan pembolehubah diisytiharkan terlebih dahulu, manakala penyataan lain tidak akan mengubah susunannya, semasa fasa penyusunan, langkah pertama sudah dilaksanakan, dan bahagian kedua dilaksanakan hanya apabila pernyataan dilaksanakan dalam fasa pelaksanaan.

Dalam pembangunan web moden, Vue, sebagai rangka kerja hadapan yang fleksibel, mudah digunakan dan berkuasa, digunakan secara meluas dalam pembangunan pelbagai tapak web dan aplikasi. Apabila membangunkan projek berskala besar, bagaimana untuk memudahkan kerumitan kod dan menjadikan projek lebih mudah untuk diselenggara adalah masalah yang mesti dihadapi oleh setiap pemaju. Pembangunan modular boleh membantu kami menyusun kod dengan lebih baik, meningkatkan kecekapan pembangunan dan kebolehbacaan kod. Di bawah, saya akan berkongsi beberapa pengalaman dan garis panduan untuk melaksanakan pembangunan modular dalam projek berskala besar Vue: 1. Pembahagian kerja yang jelas dalam projek berskala besar
