Javascript import ve requeire farkı

6 Oca

Javascript dilinde import ve require anahtar kelimeleri, modülleri kod içerisine aktarmak için kullanılır. Modülleri yüklerken NodeJS tarafında require kullanılırken, Ecmascript 6 tarafında import kullanılır.

NodeJS de kullanılan require, modülleri senkron bir şekilde yükler. Yani modül yüklenene kadar kod bloke olur ve yükleme işleminden sonra kullanılabilir. Ecma script ile kullanılan import ise modülü asenkron olarak yükler ve kod yükleme sırasında bloke olmaz.

require ve import arasındaki temel fark, require sadece modül içeri aktarma işlemi sırasında kullanılırken, import hem tüm modülün içeri aktarımı, hem de ihtiyaç halinde bir modül içerisinden tek başına export edilmiş türlerin aktarımı için kullanılır. Tek başına export edilen türler birer fonksiyon, sabit, nesne olabilir.

require ile modül yükleme

Örneğin math modülünü require ile yüklemek için aşağıdaki komut kullanılır.

const math = require('math');

math modülüne ait tekil bir export edilmiş tipi yüklemek için:

const log = require('math').log;

import ile modül yükleme

Örneğin math modülünün tümünü import ile yüklemek için aşağıdaki komut kullanılır.

import * as math from 'math';

math modülüne ait tekil bir export edilmiş tipi yüklemek için:

import {log} from 'math';

math modülüne ait tekil olarak birden fazla export edilmiş tipi yüklemek için:

import {log, factorial} from 'math';

import()

Math modülünün tanımlanması:

// math.js
export const pi = 3.14;
export const e = 2.71828;

Math modülünün calculate modülüne yüklenmesi.

// calculate.js
import { pi, e } from './math';
console.log(pi); // output 3.14
console.log(e); // output 2.71828