gpt4 book ai didi

javascript - 如何使用 web pack 在 React JS 中从外部 JS 文件导入对象

转载 作者:数据小太阳 更新时间:2023-10-29 03:58:51 25 4
gpt4 key购买 nike

我正在建立我对 React JS 的了解,我想导入/包含一些外部 JS 文件,这些文件只包含一个对象/对象数组。我已经在 jQuery、Vanilla JS 甚至 Angular JS 中做到了这一点。甜的!!!

我怎样才能在 React JS 中实现同样的事情。

我的 index.html 如下:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello React</title>
</head>
<body>
<div id="hello"></div>
<div id="world"></div>

<div id="caseListing"></div>

<script src="js/bundle.js"></script>
</body>
</html>

和我的 main.js(入口文件)如下:

import Hello from './jsx/hello.jsx';
import World from './jsx/world.jsx';

var $ = require('./lib/jquery.js');
window.jQuery = $;
window.$ = $;

var Jobs = require('./data/jobs.js');
console.log('Jobs:', Jobs);

在这里,我将 Jobs.js 作为:

var Jobs = (function () {
"use strict";
return {
"jobs": [
{
"jobType": "Web developer",
"desc": "Creates website"
},
{
"jobType": "Bin Man",
"desc": "Collects bins"
}
]
};
}());

为了更好的衡量,我的 webpack.config.js 看起来像这样:

var path = require('path');
var webpack = require('webpack');

module.exports = {
entry: [
'./js/main.js'
],
output: {
path: __dirname,
filename: 'js/bundle.js'
},
module: {
loaders: [
{
test: /.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
presets: [
'es2015',
'react'
]
}
}
]
}
};

所有帮助将不胜感激。 :)

最佳答案

您需要从 jobs.js 中导出 Jobs,以便将其导入到另一个模块中。如果您只是导出静态数据,则 jobs.js 不需要是一个函数。所以,你可以让 jobs.js 看起来像这样:

export default {
jobs: [
{
jobType: "Web developer",
desc: "Creates website"
},
{
jobType: "Bin Man",
desc: "Collects bins"
}
]
};

然后你可以像这样导入它:

import Jobs from './data/jobs.js';

或者:

var Jobs = require('./data/jobs.js').default;

如果你想使用普通的 commonjs 语法,那么你可以像这样制作 jobs.js:

module.exports = {
jobs: [
{
jobType: "Web developer",
desc: "Creates website"
},
{
jobType: "Bin Man",
desc: "Collects bins"
}
]
};

这允许您这样要求:

var Jobs = require('./data/jobs.js');    

关于javascript - 如何使用 web pack 在 React JS 中从外部 JS 文件导入对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39184389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com