ES6 (ECMAScript 2015) a introduit un système de modules standardisé pour JavaScript, révolutionnant la façon dont nous organisons et partageons le code. Dans cet article, nous explorerons les tenants et les aboutissants des importations ES6, en fournissant des exemples concrets et un projet de démonstration pour illustrer leur puissance et leur flexibilité.
La syntaxe de base pour l'importation dans ES6 est :
import { something } from './module-file.js';
Cela importe une exportation nommée appelée quelque chose à partir du fichier module-file.js dans le même répertoire.
Les exports nommés vous permettent d'exporter plusieurs valeurs depuis un module :
// math.js export const add = (a, b) => a + b; export const subtract = (a, b) => a - b; // main.js import { add, subtract } from './math.js'; console.log(add(5, 3)); // Output: 8 console.log(subtract(10, 4)); // Output: 6
Les exports par défaut fournissent une valeur exportée principale pour un module :
// greet.js export default function greet(name) { return `Hello, ${name}!`; } // main.js import greet from './greet.js'; console.log(greet('Alice')); // Output: Hello, Alice!
Vous pouvez combiner les exports nommés et par défaut dans un seul module :
// utils.js export const VERSION = '1.0.0'; export function helper() { /* ... */ } export default class MainUtil { /* ... */ } // main.js import MainUtil, { VERSION, helper } from './utils.js'; console.log(VERSION); // Output: 1.0.0 const util = new MainUtil(); helper();
Vous pouvez renommer les importations pour éviter les conflits de noms :
// module.js export const someFunction = () => { /* ... */ }; // main.js import { someFunction as myFunction } from './module.js'; myFunction();
Vous pouvez importer toutes les exportations d'un module en tant qu'objet unique :
// module.js export const a = 1; export const b = 2; export function c() { /* ... */ } // main.js import * as myModule from './module.js'; console.log(myModule.a); // Output: 1 console.log(myModule.b); // Output: 2 myModule.c();
Les importations dynamiques permettent de charger des modules à la demande :
async function loadModule() { const module = await import('./dynamicModule.js'); module.doSomething(); } loadModule();
// Button.js import React from 'react'; export default function Button({ text, onClick }) { return <button onClick={onClick}>{text}</button>; } // App.js import React from 'react'; import Button from './Button'; function App() { return <Button text="Click me" onClick={() => alert('Clicked!')} />; }
// database.js import mongoose from 'mongoose'; export async function connect() { await mongoose.connect('mongodb://localhost:27017/myapp'); } // server.js import express from 'express'; import { connect } from './database.js'; const app = express(); connect().then(() => { app.listen(3000, () => console.log('Server running')); });
Créons un gestionnaire de tâches simple pour démontrer les importations ES6 en action :
// task.js export class Task { constructor(id, title, completed = false) { this.id = id; this.title = title; this.completed = completed; } toggle() { this.completed = !this.completed; } } // taskManager.js import { Task } from './task.js'; export class TaskManager { constructor() { this.tasks = []; } addTask(title) { const id = this.tasks.length + 1; const task = new Task(id, title); this.tasks.push(task); return task; } toggleTask(id) { const task = this.tasks.find(t => t.id === id); if (task) { task.toggle(); } } getTasks() { return this.tasks; } } // app.js import { TaskManager } from './taskManager.js'; const manager = new TaskManager(); manager.addTask('Learn ES6 imports'); manager.addTask('Build a demo project'); console.log(manager.getTasks()); manager.toggleTask(1); console.log(manager.getTasks());
Pour exécuter cette démo, vous devrez utiliser un environnement JavaScript prenant en charge les modules ES6, tel que Node.js avec l'indicateur --experimental-modules ou un navigateur moderne avec un bundler comme webpack ou Rollup.
Les importations ES6 offrent un moyen puissant et flexible d'organiser le code JavaScript. En comprenant les différentes syntaxes d'importation et d'exportation, vous pouvez créer des applications plus modulaires, plus faciles à maintenir et plus efficaces. Le projet de démonstration et les exemples concrets fournis ici devraient vous donner une base solide pour utiliser les importations ES6 dans vos propres projets.
N'oubliez pas de toujours prendre en compte les besoins spécifiques de votre projet lorsque vous décidez comment structurer vos modules et vos importations. Bon codage !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!