【发布时间】:2018-04-18 16:06:31
【问题描述】:
我正在编写一个基于 Ruby Sinatra 后端的 React 应用程序。一个 main.js 文件呈现应用程序:
import React from 'react';
import ReactDOM from 'react-dom';
import Galery from './components/Galery'
ReactDOM.render(
<Galery />,
document.getElementById('app')
);
我以前将所有组件都放在一个文件中,但想将它们拆分为单独的文件。如果我在每个父组件文件中导入子组件,我只能设法让这个运行,就像在 Galery.js 中这样:
import React, { Component } from 'react';
import Image from 'Image'
class Galery extends Component {
...
<Image ... />
...
}
是否可以避免显式导入所需的组件,而是将它们加载到 main.js 文件中?也可以不在每个文件中导入 Component 模块。
这是我的 webpack 配置:
module.exports = {
entry: './react/main.js',
output: {
path: __dirname,
filename: './public/bundle.js'
},
resolve: {
root: __dirname,
alias: {
},
extensions: ['', '.js', '.jsx']
},
module: {
loaders: [
{
loader: 'babel-loader',
query: {
presets: ['react', 'es2015']
},
test: /\.js$/,
exclude: /(node_modules|bower_components)/
}
]
}
};
【问题讨论】:
-
我不确定它是否适用于您自己的模块,但您可以尝试使用 ProvidePlugin:webpack.js.org/plugins/provide-plugin。但是,这看起来是个坏主意,通常最好有显式导入以避免文件之间显式耦合。
标签: reactjs webpack sinatra code-splitting