Ø¯Ø³ØªÙØ±Ø§Øª export Ù import شا٠٠ÚÙØ¯ÛÙ ÙÙØ¹ Ù¾ÛØ§Ø¯Ù Ø³Ø§Ø²Û ÙØ³ØªÙد.
در Ù ÙØ§ÙÙ ÙØ¨ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ø³Ø§Ø¯Ù Ø§Û Ø§Ø² Ø¢ÙÙØ§ را Ø¯ÛØ¯ÛÙ Ø ØØ§Ù Ø¨ÛØ§ÛÛØ¯ Ù Ø«Ø§Ù ÙØ§Û Ø¨ÛØ´ØªØ±Û را Ø¨Ø±Ø±Ø³Û Ú©ÙÛÙ .
Ø§Ú©Ø³Ù¾ÙØ±Øª ÙØ¨Ù از تعرÛÙ
Ù
ÛâØªÙØ§ÙÛÙ
ÙØ± تعرÛÙÛ Ø±Ø§ با ÙØ±Ø§Ø± داد٠export در ÙØ¨Ù آ٠ب٠عÙÙØ§Ù Ø§Ú©Ø³Ù¾ÙØ±Øª Ø´Ø¯Ù Ø¹ÙØ§Ù
ت Ú¯Ø°Ø§Ø±Û Ú©ÙÛÙ
Ø Ú©Ù Ø¢Ù Ù
ÛâØªÙØ§Ùد تعرÛÙ Ù
ØªØºÛØ±Ø تابع ÛØ§ Ú©ÙØ§Ø³ باشد.
ب٠عÙÙØ§Ù Ù Ø«Ø§ÙØ در اÛÙØ¬Ø§ ÙÙ Ù export ÙØ§ ٠عتبر ÙØ³ØªÙد:
// export an array
export let months = ['Jan', 'Feb', 'Mar','Apr', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
// export a constant
export const MODULES_BECAME_STANDARD_YEAR = 2015;
// export a class
export class User {
constructor(name) {
this.name = name;
}
}
ÙØ·Ùا ØªÙØ¬Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù export ÙØ¨Ù از ÛÚ© Ú©ÙØ§Ø³ ÛØ§ تابع آ٠را ب٠ÛÚ© function expression تبدÛÙ ÙÙ ÛâÚ©ÙØ¯. ÙÙÙØ² Ù٠تعرÛÙ ÛÚ© تابع است اگرÚÙ export شدÙ.
اکثر راÙÙÙ Ø§ÙØ§Û استاÛ٠کد Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ØªÙØµÛÙ ÙÙ ÛâÚ©ÙÙØ¯ پس از تعرÛÙ ØªÙØ§Ø¨Ø¹ Ù Ú©ÙØ§Ø³ ÙØ§ از س٠ÛâکاÙÙÙ ÛØ§ Ù٠ا٠ÙÙØ·Ù ÙÛØ±Ú¯ÙÙ Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙØ¯.
ب٠ÙÙ
Û٠دÙÛÙ ÙÛØ§Ø²Û ب٠سÙ
ÛâکاÙÙ٠در Ø§ÙØªÙØ§Û export class Ù export function ÙÛØ³Øª:
export function sayHi(user) {
alert(`Hello, ${user}!`);
} // no ; at the end
Ø§Ú©Ø³Ù¾ÙØ±Øª جدا از تعرÛÙ
ÙÙ
ÚÙÛÙØ Ù
ÛâØªÙØ§ÙÛÙ
export را Ø¨Ù Ø·ÙØ± جداگاÙÙ ÙØ±Ø§Ø± دÙÛÙ
.
در اÛÙØ¬Ø§ ابتدا تعرÛÙ Ù ÛâÚ©ÙÛ٠٠سپس export Ù ÛâÚ©ÙÛÙ :
// ð say.js
function sayHi(user) {
alert(`Hello, ${user}!`);
}
function sayBye(user) {
alert(`Bye, ${user}!`);
}
export {sayHi, sayBye}; // ÙÛØ³ØªÛ از Ù
ØªØºÛØ±ÙØ§Û Ø§Ú©Ø³Ù¾ÙØ±Øª شدÙ
ÛØ§ از ÙØ¸Ø± ÙÙÛ Ù ÛâØªÙØ§Ù خط شا٠٠export را در Ø¨Ø§ÙØ§Û تعرÛÙ ØªÙØ§Ø¨Ø¹ ÙØ±Ø§Ø± داد.
Import *â
Ù
عÙ
ÙÙØ§Ù Ù
ا ÙÛØ³ØªÛ از Ø¢ÙÚ٠را Ú©Ù Ù
ÛâØ®ÙØ§ÙÛÙ
import Ú©ÙÛÙ
درÙ٠کرÙÛâØ¨Ø±ÛØ³ import {...}â ÙØ±Ø§Ø± Ù
ÛâØ¯ÙÛÙ
Ø Ù
اÙÙØ¯:
// ð main.js
import {sayHi, sayBye} from './say.js';
sayHi('John'); // Hello, John!
sayBye('John'); // Bye, John!
اÙ
ا اگر ÚÛØ²ÙØ§Û Ø²ÛØ§Ø¯Û Ø¨Ø±Ø§Û import از ÛÚ© Ù
اÚÙÙ ÙØ¬Ùد Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ø¯Ø Ù
ÛâØªÙØ§ÙÛÙ
ÙÙ
٠را ب٠عÙÙØ§Ù ÛÚ© Ø´ÛØ¡ با Ø§Ø³ØªÙØ§Ø¯Ù از import * as <obj>â Ø¯Ø±ÙÙ Ø¨Ø±ÙØ§Ù
Ù import Ú©ÙÛÙ
.
// ð main.js
import * as say from './say.js';
say.sayHi('John');
say.sayBye('John');
در Ùگا٠اÙÙ âimport ÙÙ Ù ÚÛØ²â ÚÛØ² Ø®ÛÙÛ Ø®ÙØ¨Û Ø¨Ù ÙØ¸Ø± Ù ÛâØ±Ø³Ø¯Ø ØØ¬Ù Ú©Ù ØªØ±Û Ú©Ø¯ Ù ÛâÙÙÛØ³ÛÙ Ø Ø¨Ø§ اÛÙ ØØ§Ù ÚØ±Ø§ Ø¨Ø§ÛØ¯ ÙÙ ÛØ´Ù Ø¨Ù ØµØ±Ø§ØØª Ø¢ÙÚÙ ÙÛØ§Ø² دارÛ٠را import Ú©ÙÛÙ Ø
Ø®Ø¨Ø ÚÙØ¯ دÙÛÙ ÙØ¬Ùد دارد.
- ÙÙØ±Ø³Øª Ú©Ø±Ø¯Ù ØµØ±ÛØ Ù
ÙØ§Ø±Ø¯Û Ú©Ù Ø¨Ø§ÛØ¯ ÙØ§Ø±Ø¯ Ø´ÙÙØ¯Ø ÙØ§Ù
âÙØ§Û Ú©ÙØªØ§ÙâØªØ±Û Ø±Ø§ ÙØ´Ø§Ù Ù
ÛâØ¯ÙØ¯:
sayHi()âØ¨Ù Ø¬Ø§Ûsay.sayHi()â. - ÙÛØ³Øª ÙØ§Ø¶Ø از import Ù Ø±ÙØ± Ø¨ÙØªØ±Û از ساختار کد Ø§ÛØ¬Ø§Ø¯ Ù ÛâÚ©ÙØ¯: ÚÙ ÚÛØ²Û Ø§Ø³ØªÙØ§Ø¯Ù شد٠٠کجا. اÛÙ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù Ø¨Ø§Ø²Ø¨ÛÙÛ Ú©Ø¯ را آسا٠تر Ù ÛâÚ©ÙØ¯.
Ø§Ø¨Ø²Ø§Ø±ÙØ§Û ٠در٠بÛÙØ¯ ٠اÙÙØ¯ webpack ٠٠اÙÙØ¯ Ø¢ÙØ ٠اÚÙÙ ÙØ§ را با ÙÙ Ø¨Ø§ÙØ¯Ù (ØªØ±Ú©ÛØ¨ Ù ÙØ´Ø±Ø¯Ù سازÛ) Ù ÛâÚ©ÙÙØ¯ ٠بÙÛÙÙ Ù ÛâÚ©ÙÙØ¯ تا سرعت Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û Ø±Ø§ Ø§ÙØ²Ø§ÛØ´ دÙÙØ¯. Ø¢ÙÙØ§ ÙÙ ÚÙÛÙ import ÙØ§Û Ø§Ø³ØªÙØ§Ø¯Ù ÙØ´Ø¯Ù را ØØ°Ù Ù ÛâÚ©ÙÙØ¯.
ب٠عÙÙØ§Ù Ù
Ø«Ø§ÙØ اگر import * as library از ÛÚ© کتابخاÙ٠کد بزرگ import Ú©ÙÛÙ
٠سپس تÙÙØ§ از ÚÙØ¯ تابع Ø¢Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
Ø Ù
ÙØ§Ø±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù ÙØ´Ø¯Ù درÙ٠بست٠بÙÛÙÙ Ø´Ø¯Ù ÙØ®ÙØ§ÙØ¯ Ø¨ÙØ¯.
Import "as"â
ÙÙ
ÚÙÛÙ Ù
ÛâØªÙØ§ÙÛÙ
از as Ø¨Ø±Ø§Û import ØªØØª ÙØ§Ù
ÙØ§Û Ù
ØªÙØ§Ùت Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
.
ب٠عÙÙØ§Ù Ù
Ø«Ø§ÙØ اجاز٠دÙÛØ¯ Ø¨Ø±Ø§Û Ø§Ø®ØªØµØ§Ø± sayHi را import Ú©ÙÛÙ
٠آ٠را در Ù
ØªØºÛØ± Ù
ØÙÛ hi ÙØ±Ø§Ø± دÙÛÙ
Ø ÙÙ
ÚÙÛÙ sayBye ØªØØª عÙÙØ§Ù bye :
// ð main.js
import {sayHi as hi, sayBye as bye} from './say.js';
hi('John'); // Hello, John!
bye('John'); // Bye, John!
Export "as"â
ساختار ٠شابÙÛ Ø¨Ø±Ø§Û export ÙØ¬Ùد دارد.
اجاز٠دÙÛØ¯ ØªÙØ§Ø¨Ø¹ را ØªØØª Ø¹ÙØ§ÙÛÙ hi Ù bye در پاÛÛÙ export Ú©ÙÛÙ :
// ð say.js
...
export {sayHi as hi, sayBye as bye};
اکÙÙÙ hi Ù bye ÙØ§Ù
ÙØ§Û رسÙ
Û Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù در Ø¨ÛØ±ÙÙ Ù
اÚÙÙ ÙØ³ØªÙØ¯Ø Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù در import ÙØ§:
// ð main.js
import * as say from './say.js';
say.hi('John'); // Hello, John!
say.bye('John'); // Bye, John!
Export default
در Ø¹Ù ÙØ ع٠دتا٠د٠ÙÙØ¹ ٠اÚÙÙ ÙØ¬Ùد دارد.
- Ù
اÚÙÙ ÙØ§ÛÛ Ú©Ù ØØ§ÙÛ Ú©ØªØ§Ø¨Ø®Ø§ÙÙØ Ø¨Ø³ØªÙ Ø§Û Ø§Ø² ØªÙØ§Ø¨Ø¹Ø Ù
اÙÙØ¯
say.jsØ¨Ø§ÙØ§ ÙØ³ØªÙد. - Ù
اÚÙÙ ÙØ§ÛÛ Ú©Ù ÛÚ© Ù
ÙØ¬ÙØ¯ÛØª ÙØ§ØØ¯ را Ø§Ø¹ÙØ§Ù Ù
ÛâÚ©ÙÙØ¯Ø ب٠عÙÙØ§Ù Ù
ثا٠Ù
اÚÙÙ
user.jsÙÙØ· Ú©ÙØ§Ø³Userرا export Ù ÛâÚ©ÙØ¯.
Ø§ØºÙØ¨Ø رÙÛکرد دÙÙ ØªØ±Ø¬ÛØ داد٠٠ÛâØ´ÙØ¯Ø Ø¨Ù Ø·ÙØ±Û Ú©Ù ÙØ± âÚÛØ²Ûâ Ø¯Ø± ٠اÚÙÙ Ø®ÙØ¯Ø´ ÙØ±Ø§Ø± دارد.
Ø·Ø¨ÛØ¹ØªØ§ÙØ Ø§ÛÙ ÙÛØ§Ø² ب٠تعداد Ø²ÛØ§Ø¯Û ÙØ§ÛÙ Ø¯Ø§Ø±Ø¯Ø Ø²ÛØ±Ø§ ÙØ± ÚÛØ²Û ٠اÚÙÙ Ø®ÙØ¯ را Ù ÛâØ®ÙØ§ÙØ¯Ø Ø§Ù Ø§ اÛÙ Ø§ØµÙØ§ Ù Ø´Ú©ÙÛ ÙÛØ³Øª. در ÙØ§ÙØ¹Ø Ù¾ÛÙ Ø§ÛØ´ کد با ÙØ§Ù Ú¯Ø°Ø§Ø±Û Ù Ø³Ø§Ø®ØªØ§Ø±Ø¨ÙØ¯Û Ø®ÙØ¨ ÙØ§ÛÙ ÙØ§ در Ù¾ÙØ´Ù ÙØ§ آسا٠تر Ù ÛâØ´ÙØ¯.
Ù
اÚÙÙ ÙØ§ ساختار export default (âexport Ø¨Ù ØµÙØ±Øª Ù¾ÛØ´ ÙØ±Ø¶â) را Ø¨Ø±Ø§Û Ø¨ÙØ¨Ùد داد٠رÙÛکرد âÛÚ© ÚÛØ² در ÙØ± Ù
اÚÙÙâ ÙØ±Ø§ÙÙ
Ù
ÛâÚ©ÙÙØ¯.
عبارت export default را ÙØ¨Ù از Ù
ÙØ¬ÙØ¯ÛØªÛ Ú©Ù Ù
ÛâØ®ÙØ§ÙÛØ¯ export Ú©ÙÛØ¯ ÙØ±Ø§Ø± دÙÛØ¯:
// ð user.js
export default class User { // .اضاÙ٠شد default ÙÙØ·
constructor(name) {
this.name = name;
}
}
در ÙØ± ÙØ§ÛÙ ÙÙØ· Ù
ÛâØªÙØ§Ù ÛÚ© export default داشت.
٠سپس آ٠را بدÙ٠کرÙÛâØ¨Ø±ÛØ³ import Ú©ÙÛØ¯.
// ð main.js
import User from './user.js'; // not {User}, just User
new User('John');
بدÙ٠کرÙÛâØ¨Ø±ÛØ³ import Ø¸Ø§ÙØ± Ø¨ÙØªØ±Û Ù
ÛâÚ¯ÛØ±Ø¯. اÙ
ا ÛÚ© Ø§Ø´ØªØ¨Ø§Ù Ø±Ø§ÛØ¬ ÙÙگاÙ
Ø´Ø±ÙØ¹ Ø§Ø³ØªÙØ§Ø¯Ù از Ù
اÚÙÙâÙØ§ ÙØ±Ø§Ù
ÙØ´ کرد٠کرÙÛâØ¨Ø±ÛØ³âÙØ§ در ÙÙ
٠جا است. پس Ø¨Ù ÛØ§Ø¯ Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ import Ø¨Ø±Ø§Û export ÙØ§Û ÙØ§Ù
Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù ÙÛØ§Ø² ب٠کرÙÛâØ¨Ø±ÛØ³ دارد Ù Ø¨Ø±Ø§Û export ÙØ§Û Ù¾ÛØ´ ÙØ±Ø¶ ÙÛØ§Ø²Û ÙØ¯Ø§Ø±Ø¯.
| (export ÙØ§Ù Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù) Named export | (export Ù¾ÛØ´ ÙØ±Ø¶) Default export |
|---|---|
export class User {...}â |
export default class User {...}â |
import {User} from ...â |
import User from ...â |
از ÙØ¸Ø± ÙÙÛØ ٠٠ک٠است ÙÙ export Ù¾ÛØ´ ÙØ±Ø¶ Ù ÙÙ export ÙØ§Ù Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø¯Ø± ÛÚ© ٠اÚÙÙ ÙØ¬Ùد Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ø¯Ø Ø§Ù Ø§ در ع٠٠٠ع٠ÙÙØ§ Ø§ÙØ±Ø§Ø¯ Ø¢ÙÙØ§ را Ù Ø®ÙÙØ· ÙÙ ÛâÚ©ÙÙØ¯. ÛÚ© ٠اÚÙÙ ÛØ§ export ÙØ§Ù Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø¯Ø§Ø±Ø¯ ÛØ§ export Ù¾ÛØ´ ÙØ±Ø¶.
از Ø¢ÙØ¬Ø§ÛÛ Ú©Ù ÙÙØ· ا٠کا٠تعرÛÙ ÛÚ© export Ù¾ÛØ´ ÙØ±Ø¶ در ÙØ± ÙØ§ÛÙ ÙØ¬Ùد Ø¯Ø§Ø±Ø¯Ø Ù ÙØ¬ÙØ¯ÛØª export شد٠٠٠ک٠است ÙØ§Ù Û ÙØ¯Ø§Ø´ØªÙ باشد.
ب٠عÙÙØ§Ù Ù Ø«Ø§ÙØ Ù٠٠اÛÙÙØ§ export Ù¾ÛØ´ ÙØ±Ø¶Ù ٠عتبر ÙØ³ØªÙد:
export default class { // Ú©ÙØ§Ø³ اسÙ
ÙØ¯Ø§Ø±Ø¯
constructor() { ... }
}
export default function(user) { // تابع اسÙ
ÙØ¯Ø§Ø±Ø¯
alert(`Hello, ${user}!`);
}
// شد٠export ÛÚ© Ù
ÙØ¯Ø§Ø± ÙØ§ØØ¯ را بدÙÙ Ø§ÛØ¬Ø§Ø¯ Ù
ØªØºÛØ±
export default ['Jan', 'Feb', 'Mar','Apr', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
عدÙ
Ø§Ø³ØªÙØ§Ø¯Ù از ÙØ§Ù
Ù
Ø´Ú©ÙÛ Ø§ÛØ¬Ø§Ø¯ ÙÙ
ÛâÚ©ÙØ¯Ø Ø²ÛØ±Ø§ در ÙØ± ÙØ§ÛÙ ÙÙØ· ÛÚ© export default ÙØ¬Ùد Ø¯Ø§Ø±Ø¯Ø Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ import بدÙ٠کرÙÛâØ¨Ø±ÛØ³ Ù
ÛâØ¯Ø§ÙØ¯ ÚÙ ÚÛØ²Û را import Ú©ÙØ¯.
بدÙÙ default ÚÙÛÙ export کردÙÛ Ø®Ø·Ø§ Ù
ÛâØ¯ÙØ¯:
export class { // Error! (non-default export needs a name)
constructor() {}
}
The âdefaultâ name
در Ø¨Ø±Ø®Û Ù
ÙÙØ¹ÛتâÙØ§ از Ú©ÙÙ
ÙâÛ Ú©ÙÛØ¯Û default Ø¨Ø±Ø§Û Ø§Ø´Ø§Ø±Ù Ø¨Ù export Ù¾ÛØ´ ÙØ±Ø¶ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯.
ب٠عÙÙØ§Ù Ù Ø«Ø§ÙØ Ø¨Ø±Ø§Û export جداگاÙÙ ÛÚ© تابع از تعرÛ٠آÙ:
function sayHi(user) {
alert(`Hello, ${user}!`);
}
// را اضاÙ٠کردÙâØ§ÛÙ
"export default" شبÛ٠اÛÙ Ù
ÛâÙ
Ø§ÙØ¯ Ú©Ù ÙØ¨Ù از تابع
export {sayHi as default};
ÛØ§ Ù
ÙÙØ¹Ûت دÛÚ¯Ø±ÛØ ÙØ±Ø¶ Ú©ÙÛØ¯ Ù
اÚÙÙ user.js ÛÚ© ÚÛØ² را Ø¨ØµÙØ±Øª Ù¾ÛØ´ ÙØ±Ø¶ export Ù
ÛâÚ©ÙØ¯ Ù ÚÙØ¯ export Ø¨ØµÙØ±Øª ÙØ§Ù
Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø¯Ø§Ø±Ø¯ (اÛ٠عÙ
Ù ÙØ§Ø¯Ø± Ø§ÙØ¬Ø§Ù
Ù
ÛâØ´ÙØ¯Ø اÙ
ا Ù
Ù
ک٠است):
// ð user.js
export default class User {
constructor(name) {
this.name = name;
}
}
export function sayHi(user) {
alert(`Hello, ${user}!`);
}
اÛÙØ¬Ø§ ÙØÙÙ import کرد٠export Ù¾ÛØ´ ÙØ±Ø¶ Ù٠را٠با ÛÚ© export ÙØ§Ù Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø±Ø§ Ù Ø´Ø§ÙØ¯Ù Ù ÛâÚ©ÙÛØ¯:
// ð main.js
import {default as User, sayHi} from './user.js';
new User('John');
٠در ÙÙØ§ÛØªØ Ø§Ú¯Ø± ÙÙ
Ù ÚÛØ² را ب٠عÙÙØ§Ù ÛÚ© Ø´ÛØ¡ با Ø§Ø³ØªÙØ§Ø¯Ù از * در Ø¨Ø±ÙØ§Ù
Ù import Ú©ÙÛÙ
Ø Ø¢ÙÚ¯Ø§Ù Ø®Ø§ØµÛØª default در Ø´ÛØ¡Ø ÙÙ
ا٠export Ù¾ÛØ´ ÙØ±Ø¶ Ù
ÛâØ¨Ø§Ø´Ø¯:
// ð main.js
import * as user from './user.js';
let User = user.default; // the default export
new User('John');
Ú©ÙÙ Ù Ø§Û Ø¯Ø± برابر export Ù¾ÛØ´ ÙØ±Ø¶
Ø¨Ø§ÛØ¯ Ø¯Ø§ÙØ³Øª Ú©Ù export ÙØ§Û ÙØ§Ù Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù ØµØ±ÛØ ÙØ³ØªÙد. Ø¢ÙÙØ§ دÙÛÙØ§ Ù ÛâÚ¯ÙÛÙØ¯ Ú©Ù ÚÙ ÚÛØ²Û را import Ù ÛâÚ©ÙÙØ¯Ø Ø¨ÙØ§Ø¨Ø±Ø§Û٠از Ø¢ÙÙØ§ اÛÙ Ø§Ø·ÙØ§Ø¹Ø§Øª را دارÛÙ Ø Ø§ÛÙ ÛÚ© ÚÛØ² Ø®ÙØ¨ است.
ÙÙ ÚÙÛÙ export ÙØ§Û ÙØ§Ù Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ù Ø§ را Ù Ø¬Ø¨ÙØ± Ù ÛâÚ©ÙÙØ¯ از دÙÛÙØ§Ù ÙÙ Ø§Ù ÙØ§Ù درست Ø¨Ø±Ø§Û import Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ :
import {User} from './user.js';
// باشد {User} کار ÙÙ
ÛâÚ©ÙØ¯Ø ÙØ§Ù
Ø¨Ø§ÛØ¯ {MyUser} کرد٠import
در ØµÙØ±ØªÛ Ú©Ù Ø¨Ø±Ø§Û export Ù¾ÛØ´ ÙØ±Ø¶ در ÙÙگا٠import از ÛÚ© ÙØ§Ù Ø§ÙØªØ®Ø§Ø¨Û Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâÚ©ÙÛÙ .
import User from './user.js'; // کار Ù
ÛâÚ©ÙØ¯
import MyUser from './user.js'; // اÛÙ ÙÙ
کار Ù
ÛâÚ©ÙØ¯
// Ú©ÙØ¯... Ù ÙÙ
ÚÙØ§Ù کار Ø®ÙØ§Ùد کرد import Ù
ÛâØªÙØ§Ùد ÙØ± ÙØ§Ù
Û Ø±Ø§
Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ Ø§Ø¹Ø¶Ø§Û ØªÛ٠٠٠ک٠است Ø¨Ø±Ø§Û import ÛÚ© ٠اÚÙ٠از ÙØ§Ù ÙØ§Û Ù ØªÙØ§ÙØªÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÙØ¯ ٠اÛÙ Ø®ÙØ¨ ÙÛØ³Øª.
٠ع٠ÙÙØ§ÙØ Ø¨Ø±Ø§Û Ø¬ÙÙÚ¯ÛØ±Û از اÛÙ Ù ÙØ¶Ùع Ù ØÙظ ÛÚ©ÙÙØ§Ø®ØªÛ Ú©Ø¯Ø ÙØ§Ø¹Ø¯Ù Ø§Û ÙØ¬Ùد دارد Ú©Ù Ù ØªØºÛØ±ÙØ§Û import Ø´Ø¯Ù Ø¨Ø§ÛØ¯ ٠طاب٠با ÙØ§Ù ÙØ§ÛÙâÙØ§ Ø¨Ø§Ø´ÙØ¯Ø ب٠عÙÙØ§Ù ٠ثاÙ:
import User from './user.js';
import LoginForm from './loginForm.js';
import func from '/path/to/func.js';
...
با اÛÙ ØØ§ÙØ Ø¨Ø±Ø®Û ØªÛÙ
âÙØ§ اÛ٠را ÛÚ© ÙÙØ·Ù Ø¶Ø¹Ù Ø¬Ø¯Û export Ù¾ÛØ´ ÙØ±Ø¶ Ù
ÛâØ¯Ø§ÙÙØ¯. Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ ØªØ±Ø¬ÛØ Ù
ÛâØ¯ÙÙØ¯ ÙÙ
ÛØ´Ù از import ÙØ§Ù
Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÙØ¯. ØØªÛ اگر ÙÙØ· ÛÚ© ÚÛØ² صادر Ø´ÙØ¯Ø ÙÙ
ÚÙØ§Ù ØªØØª ÛÚ© ÙØ§Ù
export Ù
ÛâØ´ÙØ¯Ø بدÙÙ default.
اÛÙ ÙÙ ÚÙÛÙ export ٠جدد (Ø±Ø¬ÙØ¹ Ú©ÙÛØ¯ Ø¨Ù Ø²ÛØ±) را Ø§ÙØ¯Ú©Û آسا٠تر Ù ÛâÚ©ÙØ¯.
export ٠جدد
ساختار âexport Ù
جددâ export ... from ...â Ø§Û٠اÙ
کا٠را ÙØ±Ø§ÙÙ
Ù
ÛâØ³Ø§Ø²Ø¯ تا ÚÛØ²Ùا را import Ú©ÙÛÙ
٠بعد Ø§Ø²Ø¢Ù Ø¨ØªÙØ§ÙÛÙ
آ٠را export Ú©ÙÛÙ
(Ø§ØØªÙ
Ø§ÙØ§ ØªØØª ÙØ§Ù
Û Ø¯Ûگر)Ø Ù
اÙÙØ¯:
export {sayHi} from './say.js'; // re-export sayHi
export {default as User} from './user.js'; // re-export default
ÚØ±Ø§ اÛ٠ا٠ر Ù ÙØ±Ø¯ ÙÛØ§Ø² Ø§Ø³ØªØ Ø¨ÛØ§ÛÛØ¯ ÛÚ© کاربرد ع٠ÙÛ Ø¨Ø¨ÛÙÛÙ .
ÙØ±Ø¶ Ú©ÙÛØ¯ Ø¯Ø±ØØ§Ù ÙÙØ´ØªÙ ÛÚ© âÙ¾Ú©ÛØ¬â ÙØ³ØªÛÙ : ÛÚ© Ù¾ÙØ´Ù با تعداد Ø²ÛØ§Ø¯Û ٠اÚÙÙØ Ú©Ù Ø¨Ø±Ø®Û Ø§Ø² ع٠ÙÚ©Ø±Ø¯ÙØ§Û Ø¢Ù Ø¨Ù Ø¨ÛØ±ÙÙ export Ù ÛâØ´ÙØ¯ (Ø§Ø¨Ø²Ø§Ø±ÙØ§ÛÛ Ù Ø§ÙÙØ¯ NPM ب٠٠ا Ø§Ø¬Ø§Ø²Ù Ø§ÙØªØ´Ø§Ø± Ù ØªÙØ²Ûع ÚÙÛÙ Ù¾Ú©ÛØ¬âÙØ§ÛÛ Ø±Ø§ Ù ÛâØ¯ÙØ¯Ø ا٠ا اÛÙØ¬Ø§ ÙÛØ§Ø²Û Ø¨Ù Ø§Ø³ØªÙØ§Ø¯Ù از Ø¢ÙÙØ§ ÙÛØ³Øª) ٠٠اÚÙÙâÙØ§Û Ø²ÛØ§Ø¯Û ÙÙØ· âÚ©Ù Ú©Ûâ ÙØ³ØªÙØ¯Ø Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù داخÙÛ Ø¯Ø± Ø³Ø§ÛØ± ٠اÚÙÙâÙØ§Û Ù¾Ú©ÛØ¬.
ساختار ÙØ§Û٠٠٠ک٠است ب٠اÛ٠شک٠باشد:
auth/
index.js
user.js
helpers.js
tests/
login.js
providers/
github.js
facebook.js
...
Ù ÛâØ®ÙØ§ÙÛ٠ع٠Ùکرد Ù¾Ú©ÛØ¬ را از طرÛÙ ÛÚ© ÙÙØ·Ù ÙØ±ÙØ¯Û Ø¯Ø± ٠عرض ÙÙ Ø§ÛØ´ ÙØ±Ø§Ø± دÙÛÙ .
ب٠عبارت دÛÚ¯Ø±Ø Ø´Ø®ØµÛ Ú©Ù Ù
ÛâØ®ÙØ§Ùد از Ù¾Ú©ÛØ¬ Ù
ا Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙØ¯Ø ÙÙØ· Ø¨Ø§ÛØ¯ âÙØ§Û٠اصÙÛâ auth/index.js را import Ú©ÙØ¯.
٠اÙÙØ¯:
import {login, logout} from 'auth/index.js'
âÙØ§Û٠اصÙÛâØ auth/index.js Ø ÙÙ
٠عÙ
ÙÚ©Ø±Ø¯ÙØ§ÛÛ Ø±Ø§ Ú©Ù Ù
ÛâØ®ÙØ§ÙÛÙ
در Ù¾Ú©ÛØ¬ Ø®ÙØ¯ ارائ٠دÙÛÙ
export Ù
ÛâÚ©ÙØ¯.
Ø§ÛØ¯Ù اÛ٠است Ú©Ù Ø¨ÛØ±ÙÙÛâÙØ§ Ø Ø¨Ø±ÙØ§Ù
Ù ÙÙÛØ³Ø§Ù دÛÚ¯Ø±Û Ú©Ù Ø§Ø² Ù¾Ú©ÛØ¬ Ù
ا Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÙØ¯ Ø ÙØ¨Ø§Ûد Ø¯Ø®Ø§ÙØªÛ در ÙØ§ÛÙ ÙØ§ ٠ساختار Ù¾Ú©ÛØ¬ Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÙØ¯. Ù
ا ÙÙØ· Ø¢ÙÚ٠را Ú©Ù ÙØ§Ø²Ù
است در auth/index.js Ù¾Ú©ÛØ¬ Ø®ÙØ¯ export Ù
ÛâÚ©ÙÛÙ
٠بÙÛ٠را از ÚØ´Ù
ÙØ§Û Ú©ÙØ¬Ú©Ø§Ù Ù¾ÙÙØ§Ù ÙÚ¯Ù Ù
ÛâØ¯Ø§Ø±ÛÙ
.
از Ø¢ÙØ¬Ø§ÛÛ Ú©Ù Ø¹Ù
Ùکرد export Ø´Ø¯Ù ÙØ§Ùعا در سراسر Ù¾Ú©ÛØ¬ Ù¾Ø±Ø§Ú©ÙØ¯Ù Ø§Ø³ØªØ Ù
ÛâØªÙØ§ÙÛÙ
آ٠را در auth/index.js Ú©Ù ÙÙØ·Ù ارتباط Ù¾Ú©ÛØ¬ با Ø¨ÛØ±Ù٠است import Ú©ÙÛÙ
٠سپس از Ø¢ÙØ¬Ø§ export Ø¨Ú¯ÛØ±ÛÙ
:
// ð auth/index.js
// شد٠export شد٠٠سپس Ø¨ÙØ§ÙاصÙÙ import ابتدا login/logout
import {login, logout} from './helpers.js';
export {login, logout};
// import default as User and export it
import User from './user.js';
export {User};
...
اکÙÙÙ Ú©Ø§Ø±Ø¨Ø±Ø§Ù Ù¾Ú©ÛØ¬ Ù
ا Ù
ÛâØªÙØ§ÙÙØ¯ از import {login} from "auth/index.js"â Ø§Ø³ØªÙاد٠کÙÙØ¯.
ساختار export ... from ...â ÙÙØ· ÛÚ© ÙÙ
Ø§ÛØ´ Ù
ختصر از ÙÙ
ÛÙ import/export است:
// ð auth/index.js
// re-export login/logout
export {login, logout} from './helpers.js';
// re-export the default export as User
export {default as User} from './user.js';
...
ØªÙØ§Ùت ÙØ§Ø¨Ù ØªÙØ¬Ù export ... fromâ ÙØ³Ø¨Øª ب٠import/export اÛ٠است ک٠در اÙÙÛ Ù
اÚÙÙ ÙØ§ در ÙØ§ÛÙ Ø¬Ø§Ø±Û Ø¯Ø± دسترس ÙÛØ³ØªÙØ¯Ø Ø¨ÙØ§Ø¨Ø± اÛ٠در Ù
Ø«Ø§Ù Ø¨Ø§ÙØ§ ÙÙ
ÛâØªÙØ§Ù از ØªÙØ§Ø¨Ø¹ login/logout در ÙØ§ÛÙ auth/index.js Ø§Ø³ØªÙØ§Ø¯Ù کرد.
export ٠جدد export Ù¾ÛØ´ ÙØ±Ø¶
ÙÙگا٠export Ù Ø¬Ø¯Ø¯Ø export Ù¾ÛØ´ ÙØ±Ø¶ (export default) ÙÛØ§Ø² Ø¨Ù Ø¯Ø³ØªÚ©Ø§Ø±Û Ø¬Ø¯Ø§Ú¯Ø§Ù٠دارد.
ÙØ±Ø¶ Ú©ÙÛØ¯ user.js با export default class User Ù Ù
ÛâØ®ÙØ§ÙÛÙ
آ٠را Ù
جدد export Ú©ÙÛÙ
:
// ð user.js
export default class User {
// ...
}
٠٠ک٠است با Ø¯Ù Ù Ø´Ú©Ù Ù ÙØ§Ø¬Ù Ø´ÙÛÙ :
-
عبارت
export User from './user.js'âکار ÙÙ ÛâÚ©ÙØ¯. اÛÙ Ø¨Ù Ø®Ø·Ø§Û ÙØÙÛ (سÛÙØªÚ©Ø³) Ù ÙØ¬Ø± Ù ÛâØ´ÙØ¯.Ø¨Ø±Ø§Û export ٠جدد export Ù¾ÛØ´ ÙØ±Ø¶Ø Ø¨Ø§ÛØ¯ بÙÙÛØ³ÛÙ
export {default as User} from './user.js'âØ Ù Ø§ÙÙØ¯ Ù Ø«Ø§Ù Ø¨Ø§ÙØ§. -
عبارت
export * from './user.js'âÙÙØ· export ÙØ§Û ÙØ§Ù Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø±Ø§ export ٠جدد Ù ÛâÚ©ÙØ¯Ø ا٠ا export Ù¾ÛØ´ ÙØ±Ø¶ را ÙØ§Ø¯Ûد٠٠ÛâÚ¯ÛØ±Ø¯.اگر Ø¨Ø®ÙØ§ÙÛÙ ÙÙ export ÙØ§Ù Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ù ÙÙ Ù¾ÛØ´ ÙØ±Ø¶ را export ٠جدد Ú©ÙÛÙ Ø Ø¢Ùگا٠د٠عبارت ÙØ§Ø²Ù است:
export * from './user.js'; // to re-export named exports export {default} from './user.js'; // to re-export the default export
ÚÙÛÙ Ø¹Ø¬Ø§ÛØ¨Û از export ٠جدد٠export Ù¾ÛØ´ ÙØ±Ø¶ ÛÚ©Û Ø§Ø² Ø¯ÙØ§ÛÙÛ Ø§Ø³Øª Ú©Ù Ø¨Ø±Ø®Û ØªÙØ³Ø¹Ù دÙÙØ¯Ú¯Ø§Ù از export Ù¾ÛØ´ ÙØ±Ø¶ Ø®ÙØ´Ø´Ø§Ù ÙÙ ÛâØ¢ÛØ¯ Ù ØªØ±Ø¬ÛØ Ù ÛâØ¯ÙÙØ¯ از export ÙØ§Ù Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÙØ¯.
ج٠ع Ø¨ÙØ¯Û
در اÛÙØ¬Ø§ اÙÙØ§Ø¹ export را ک٠در اÛÙ Ù
ÙØ§ÙÙ Ù Ù
ÙØ§Ùات ÙØ¨ÙÛ Ù¾ÙØ´Ø´ دادÙâØ§ÛÙ
Ø Ù
Ø±ÙØ± Ù
ÛâÚ©ÙÛÙ
.
Ù ÛâØªÙØ§ÙÛØ¯ Ø®ÙØ¯ را با Ø®ÙØ§Ùد٠آÙÙØ§ Ù Ø¨Ù ÛØ§Ø¯ Ø¢ÙØ±Ø¯Ù Ù Ø¹ÙØ§ÛØ´Ø§Ù Ø¨Ø±Ø±Ø³Û Ú©ÙÛØ¯:
- export ÙØ¨Ù از تعرÛÙ Ú©ÙØ§Ø³ / تابع / ⦠:
export [default] class/function/variable ...â
- export Ù
ستÙÙ (standalone export):
export {x [as y], ...}â.
- export Ù
جدد (re-export):
export {x [as y], ...} from "module"âexport * from "module"â(doesnât re-export default).export {default [as y]} from "module"â(re-export default).
Import:
- import از export ÙØ§Ù
Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù:
import {x [as y], ...} from "module"â
- import از export Ù¾ÛØ´ ÙØ±Ø¶:
import x from "module"âimport {default as x} from "module"â
- import ÙÙ
Ù:
import * as obj from "module"â
- import کرد٠Ù
اÚÙÙ (کد آ٠اجرا Ù
ÛâØ´ÙØ¯)Ø Ø§Ù
ا ÙÛÚ ÛÚ© از export ÙØ§Û آ٠ب٠Ù
ØªØºÛØ± Ø®Ø§ØµÛ Ø§Ø®ØªØµØ§Øµ ÙÙ
ÛâÛØ§Ø¨Ø¯.
import "module"â
Ù
ÛâØªÙÙÛÙ
عبارات import/export را در Ø¨Ø§ÙØ§ ÛØ§ پاÛÛ٠اسکرÛپت ÙØ±Ø§Ø± دÙÛÙ
Ø Ø§ÙÙ
ÛØªÛ ÙØ¯Ø§Ø±Ø¯.
Ø¨ÙØ§Ø¨Ø±Ø§Û٠از ÙØ¸Ø± ÙÙÛ Ø§Û٠کد درست است:
sayHi();
// ...
import {sayHi} from './say.js'; // شد٠import در Ø§ÙØªÙØ§Û ÙØ§ÛÙ
در ع٠٠import ÙØ§ ٠ع٠ÙÙØ§ در Ø§Ø¨ØªØ¯Ø§Û ÙØ§ÛÙ ÙØ±Ø§Ø± Ø¯Ø§Ø±ÙØ¯Ø ا٠ا اÛÙ ÙÙØ· Ø¨Ø±Ø§Û Ø±Ø§ØØªÛ Ø¨ÛØ´ØªØ± است.
ÙØ·ÙØ§Ù ØªÙØ¬Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ ک٠عبارات import/export در داخ٠{...} کار ÙÙ
ÛâÚ©ÙÙØ¯.
ÛÚ© import Ø´Ø±Ø·Û Ù Ø§ÙÙØ¯ Ø²ÛØ±Ø کار ÙÙ ÛâÚ©ÙØ¯:
if (something) {
import {sayHi} from "./say.js"; // Error: import must be at top level
}
ا٠ا اگر ÙØ§Ùعا٠ÙÛØ§Ø² ب٠import Ø´Ø±Ø·Û Ø¯Ø§Ø´ØªÛÙ ÚÙØ Ù Ø«ÙØ§Ù Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û ÛÚ© ٠اÚÙÙ ÙÙÚ¯Ø§Ù Û Ú©Ù ÙØ§ÙØ¹Ø§Ù ÙØ§Ø²Ù Ø§Ø³ØªØ ÚÙ Ø¨Ø§ÛØ¯ کردØ
در Ù ÙØ§ÙÙ Ø¨Ø¹Ø¯Û import ÙØ§Û Ù¾ÙÛØ§ (dynamic imports) را Ø®ÙØ§ÙÛÙ Ø¯ÛØ¯.
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)