我正在构建我对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'
]
}
}
]
}
};
所有帮助将不胜感激。 :)
答案 0 :(得分:19)
您需要从jobs.js导出作业才能将其导入另一个模块。如果只是导出静态数据,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');
答案 1 :(得分:11)
我们假设您保存数据的文件名为&#34; file.js。&#34;
var text = "Hello world!"; //In file.js
在此行下方,您必须导出此变量,以便可以在React代码中导入它:
module.exports = {data: text} //In file.js
该字符串存储为名为&#34; data。&#34; 然后导入&#34; file.js&#34;的内容。在您希望使用它的文件中,让我们说App.jsx&#34;。
import file from './file.js'; //In App.jsx
您在另一个文件中导出的对象的内容将存储为变量&#34; file&#34;这里。然后,您可以转换&#34; file&#34;的内容。对象:
var str = file.data; //"data" is the object within "file"
你的字符串&#34; Hello world!&#34;,现在存储在变量str中。
希望这有帮助!