出口函数范围混淆es6

时间:2017-08-06 04:55:55

标签: javascript reactjs ecmascript-6

我在导出时遇到了这两种语法。说我有一个文件调用actions.js和app.js

第一个看起来像这样

in actions.js

export function addTodo() {}
export function deleteTodo() {}
and in app.js I have

import { addTodo, deleteTodo } from './actions.js'
addTodo() //call method

第二种方式将每个函数包装到一个对象

in action.js

const actions = {
   addTodo: function() {}
   delete: function() {}
}
export default actions
app.js中的

import actions from './actions'
actions.addTodo() // call method

他们两个都做同样的事情?使用那些2有什么不同吗?我更喜欢第一个,因为我可以从actions.js中导入指定的函数。使用方法1是否有任何范围泄漏?您的偏好是什么?

1 个答案:

答案 0 :(得分:1)

两种样式的主要区别在于第一种样式仍然可以具有默认导出。您也可以拥有two named exportsdefault export。第二种风格的所有其他出口都需要命名。