<p>简单地说,我有一个 <code>js</code> 文件,其导出默认值返回一个对象。</p>
<pre class="brush:js;toolbar:false;">// x.js
export default ()=>({
text: 'text'
})
</pre>
<p>我想将其导入另一个 <code>js</code> 文件中并将其与其数据合并(有点扩展它)。
现在我正在这样做:</p>
<pre class="brush:js;toolbar:false;">// y.js
import x from './x.js';
const obj = x()
export default ()=>({
...obj,
text2: "text2"
})
</pre>
<p>它可以工作,但不干净。有没有更简单的方法来做到这一点?</p>
我认为,“我想使用一种干净的方法”,这是一种易于理解的方法。因此,以下方法可能有用 -
1。默认导出-
这对于仅导出单个对象、函数或变量非常有用。在导入过程中,我们可以使用任何名称来导入。
// x.js export default function xFunc() { return { text: "text" }; } //y.js import xFunc from "./x.js"; export default function yFunc() { return { ...xFunc(), text2: "text2", }; } // import y in any file import yFunc from "./y"; console.log(yFunc());默认导出也可以这样使用-
这很有用,因为我们可以使用任何名称来娱乐,因为它是带有名称的默认导出(因此我们可以记住该名称)并使用任何名称导入。
// x.js function xFunc() { return { text: "text" }; } export { xFunc as default }; // y.js import anyName from "./x.js"; function yFunc() { return { ...anyName(), text2: "text2", }; } export { yFunc as default }; // import y in any file import anyName from "./y"; console.log(anyName());2。命名导出(推荐)-
这对于导出多个值很有用。导入过程中,必须使用相同的名称,以避免导出和导入名称之间的混淆。
// x.js export const xFunc = () => { text: "text" }; //y.js import { xFunc } from "./x.js"; export const yFunc = () => { return { ...xFunc(), text2: "text2", }; }; // import y in any file import { yFunc } from "./y"; console.log(yFunc());编辑--
命名导出也可以这样使用(不使用 const 和箭头函数)
// x.js function xFunc() { return { text: "text" }; } export { xFunc }; //y.js import { xFunc } from "./x.js"; function yFunc() { return { ...xFunc(), text2: "text2", }; } export { yFunc }; // import y in any file import { yFunc } from "./y"; console.log(yFunc());