requireとimportの違い

2751 ワード

nodeプログラミングの中で一番重要な思想はモジュール化です.importとrequireはモジュール化に使われます.
標準に従ってrequireはAMD仕様の導入方式importであり、ブラウザに対応するにはes 5に変換する必要があります.時間requireは実行時に呼び出すので、requireは理論的にコードのどこにでも適用できます.実は、requireの結果は対象、数字、文字列、関数などです.またrequireの結果を変数importに割り当てるのは分解過程です.しかし、現在はすべてのエンジンがimportを実現していません.私達はnodeでbabelを使ってES 6をサポートします.ES 6をES 5に変換してから実行します.import文法はrequireに転送されます.
require/export:CommunJS/AMDに従って、モジュールの依存関係と入出力の変数だけを実行時に決定して、静的な最適化ができません.使い方は以下の3つの簡単な書き方しかありません.
const fs=require(‘fs’)exports.fs=fs module.exports=fs import/export:ES 6仕様に従い、コンパイル時の静的分析をサポートし、JSがマクロとタイプの検査を導入するのに便利です.動的結合書き方は様々です.
import fs from 'fs'
import {default as fs} from 'fs'
import * as fs from 'fs'
import {readFile} from 'fs'
import {readFile as read} from 'fs'
import fs, {readFile} from 'fs'

export default fs
export const fs
export function readFile
export {readFile, read}
export * from 'fs'
requireでベースデータタイプを導入すると、この変数はコピーされます.requireによって複雑なデータタイプを導入すると、データはそのオブジェクトを浅くコピーします.モジュール間の循環参照があると、実行済みのモジュールが出力されますが、実行されていないモジュールは出力されません(複雑です).