- vừa được xem lúc

Imports và Exports trong JavaScript ES6

0 0 93

Người đăng: Thanh Sang Cao

Theo Viblo Asia

Giới thiệu

ES6 cung cấp cho chúng ta import (nhập), export (xuất) các functions, biến từ module này sang module khác và sử dụng nó trong các file khác. Nói một cách chính xác theo thuật ngữ React, người ta có thể sử dụng các stateless components trong các components khác bằng cách export các components từ các modules tương ứng và sử dụng nó trong các tệp khác.

ES6 cung cấp hai cách để export một module từ một tệp: named export và default export.

1. Named Export: (export)

Trong JavaScript ES6, named export được sử dụng để xuất nhiều thứ từ một module bằng cách thêm keyword export vào khai báo của chúng. Những thứ được export sẽ được phân biệt bằng tên. Sau đó import những thứ chúng ta cần sử dụng bằng cách bao quanh chúng cặp dấu ngoặc nhọn { }. Tên của module đã nhập phải giống với tên của module đã xuất.

Ví dụ 1: Tôi đã tạo các hàm được đặt tên trong một tệp JavaScript có tên là functionsFile.js

//functionsFile.js //exporting a function
export function squareNumber(x) { return x * x; } //exporting a variable export const pi = 3.14; //Cách khác để export: //exporting a function
function squareNumber(x) { return x * x; } //exporting a variable const pi = 3.14; export {squareNumber, pi} ; 

Bây giờ hàm SquareNumber và biến pi đã sẵn sàng để import. Tôi sẽ tạo một tệp có tên main.js và import các giá trị được export ở trên

//main.js import {squareNumber, pi} from "functionsFile"; const radius = 7; console.log("Area of a circle is", pi * squareNumber(7)); //Cách khác để import import * as mathFuncs from "functionsFile"; console.log("Area of circle is ", mathFuncs.pi * mathFuncs.squareNumber(7)); 

Ví dụ 2:

// imports
// importing a single named export
import { MyComponent } from "./MyComponent"; // importing multiple named exports
import { MyComponent, MyComponent2 } from "./MyComponent"; // sử dụng 'as' để đặt tên khác cho named export:
import { MyComponent2 as MyNewComponent } from "./MyComponent"; // import tất cả named exports vào 1 đối tượng:
import * as MainComponents from "./MyComponent"; // exports from ./MyComponent.js file
export const MyComponent = () => {}
export const MyComponent2 = () => {} 

2. Default Export: (export default)

Default Export trong Javascript ES6 chỉ cho phép xuất một mặc định cho mỗi file. Default Export có thể cho một function, class hoặc một object.

Ví dụ 1:

//functionsFile.js export default function(x) { return x * x ; }

import vào 1 file khác

//main.js import squareNumber from "functionsFile"; squareNumber(7);

Ví dụ 2:

// import
import MyDefaultComponent from "./MyDefaultExport";
// export
const MyComponent = () => {}
export default MyComponent;

Chú ý: Việc đặt tên import hoàn toàn độc lập trong export default và chúng ta có thể sử dụng bất kỳ tên nào mà mình muốn.

3. Exporting a class

Trong Javascript ES6, các class cũng có thể được xuất như các function

Ví dụ 1:

//MyClass.js export default class MyClass { ...
} //Main.js import MyClass from "MyClass";

Xét trong trường hợp sử dụng React, trong đó MyClass là một component và cần được hiển thị bên trong Main, nó sẽ trông như sau:

//MyClass.js import React from "react"; export default class MyClass extends React.Component { ...
} //Main.js import React from "react"; import MyClass from "MyClass";
export default class Main extends React.Component { render() { return( <MyClass /> ); }
}

Tổng kết

Named exports hữu dụng trong việc xuất một số giá trị. Trong quá trình import, chúng ta sẽ có thể sử dụng tên tương tự để chỉ giá trị tương ứng.

Liên quan đến Export default, chỉ có một default export duy nhất cho mỗi một module. Export default có thể là một function, một class, một object hoặc bất cứ thứ gì khác. Giá trị này được coi là giá trị export chính vì nó là đơn giản nhất để import.

Nguồn:

http://parseobjects.com/imports-exports-javascript-es6/

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 499

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 374

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 335

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 420

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414