这个问题几乎让所有正在学习 React 的开发人员感到困惑。
React 足够聪明,可以组织您的所有文件应用程序。
您需要知道的重要一点是,当您完成并为您的应用程序创建生产构建时,您的所有 CSS 文件都将在一个文件中,您的所有组件以及您的所有图像都将仅在一个 JS 文件中, 图标...等将位于名为 media 的文件夹中。
在你做完created a production build之后
//If your project is built with Create React App, run
npm run build
您将在此文件夹中仅获得一个名为“build”的文件夹,您将拥有index.html 和
static 文件夹它只有一个 CSS 文件和一个 JS 文件和媒体文件夹,如上所述。 此文件夹中的文件需要上传到您的网站
那么你现在真正需要做的是:
您不必为每个组件创建特定的 CSS 文件
您只需在公用文件夹中创建一个文件并将其链接到index.html 文件中,这样您的所有组件都可以轻松访问此 CSS 文件。
<link rel="stylesheet" href="styles.css">
您可以创建Services 文件夹,其中包含您所有的应用程序操作,例如
/app
/layout
/header.js
/footer.js
/members
/Sign
/index.js
/Register
/index.js
/Profile
/index.js
/services
/members
/actions.js
/reducer.js//in case if you're using redux
/panel
/actions.js
/reducer.js//in case if you're using redux
/media
/images
/images.js // why JS file here?? read below
/logo.svg
/cover.svg
/profile.svg
/body.svg
重要的是使文件夹结构易于理解,并尽量不要通过创建许多文件而使其混乱,而不必在单个文件中。
如果您将来需要更新某些内容,请尝试使其简单化,这样就不会花费一段时间来重新理解,只需按照您觉得舒服的方式进行即可。
为什么images文件夹里面有一个JS文件?
你有很多方法来处理你的图片,但是如果你需要在一个组件中数百张图片,你会如何像这样导入它们
import logo from '../images/logo.svg';
import cover from '../images/cover.svg';
import profile from '../images/profile.svg'; // ...etc
我知道这对你没有意义,我将向你展示两种处理数百张图片的方法
第一种方式:因为不能使用导入路径,所以必须在public文件夹中创建一个images文件夹并使用这段代码
//This is the regular way.
<img src={process.env.PUBLIC_URL + 'images/profile.svg'} width={"200"} height={"200"} className="profile-img" alt="profile" />
第二种方式:可以指定每个组件有一个images.js文件,然后在images.js中导入该组件的所有延迟图像并将其命名为相关组件名称(它将让您知道此图像文件的用途。)
images.js
import logo from './logo.svg';
import cover from './cover.svg';
import profile from './profile.svg';
import background1 from './body.svg';
export default {
logo,
cover,
profile,
background1
}
然后在你的组件中,你可以只导入images.js 文件:
import images from './images';
然后调用任何你想要的img:
<img src={images.logo} className="App-logo" alt="logo" />
<img src={images.cover} className="App-logo" alt="logo" />
<img src={images.profile} className="App-logo" alt="logo" />
<img src={images.background1} className="App-logo" alt="logo" />
Unable to load images from local library in React.js
最后,我更喜欢你在生成生产版本时使用minify 和uglify
这将压缩 JS 代码使其更小 — 你可以使用
UglifyJsPlugin 也会丑化 CSS,这与名称相反
会建议
看看这个对你也有帮助
How to Organize React Files Before It’s Messed Up?