es6中import task和import {Task}之间的区别是什么

时间:2016-08-02 06:46:12

标签: javascript meteor reactjs

之间有什么区别
import { Tasks } from '../api/tasks.js';

import Task from './Task.jsx';

何时使用{}以及何时不使用{}

(顺便说一下,这是来自meteor tutorial https://www.meteor.com/tutorials/react/update-and-remove

3 个答案:

答案 0 :(得分:2)

当您确定它是默认导出时,您不必使用{}。

例如:

export default class Test{}

你可以这样做:

import Test from './test'

另一方面,如果你没有精确的“默认”关键字,你必须精确{}:

export class Test {}

给出

import { Test } from './test'

答案 1 :(得分:0)

如果你想抓住你可以做的所有模块

import * as test from "Test";

如果只导出某些模块而不是全部模块,则必须指定所需的wictch模块

import { Module1, Module2, Module3 } from "Modules"; //grab only given in {}

如果你只有export default Test,你可以

import "Test";

read more about modules

答案 2 :(得分:0)

当你做

 import { Tasks } from '../api/tasks.js';

您正在从'../ api / tasks.js';

导入任务模块

当你做

import Tasks  from '../api/tasks.js';

您要从'../api/tasks.js'导入默认导出模块;这里的Task是一个引用默认导出模块的变量。

实施例

task.js     export default任务;

案例1:来自task.js的任务 情况2:任务变量指向task.js中的任务模块,即Task

如果我这样做的话 从'./api/task.js'导入someVariable仍然可以工作,因为someVarible将指向默认导出模块,即task.js中的Task模块

如果我这样做

从'./api/task.js'导入{someVariable}它将在task.js中搜索模块someVariable,但它不存在,所以现在它是未定义的。