【发布时间】:2020-06-12 23:33:38
【问题描述】:
我最近开始了一个 react 项目,我发现一些带有 npm 的 util 命令可以自动生成一些项目。没问题,但是项目结构对我来说有点混乱,所以我在google上搜索了一些解释,一切都很好,我在https://www.pluralsight.com/guides/file-structure-react-applications-created-create-react-app上发现了一些有趣的东西:
虽然组件可以驻留在 src/components/my-component-name 中,但它是 建议在该目录中有一个 index.js。因此,每当 有人使用 src/components/my-component-name 导入组件, 而不是导入目录,这实际上会导入 index.js 文件。
这个 index.js 文件,我应该如何创建它来返回组件?
例如我想为不同的路线创建一些页面:
import React, {Component} from 'react'
class MyPage extends Component{
render() {
return (
<div>
My Page
</div>
);
}
}
export default MyPage;
现在,index.js 应该是这样的?
import React from "react";
import MyPage from "src/pages/MyPage";
const mypage = () => {
return <MyPage/>
};
export default mypage;
以及项目结构:
src
|___pages
|____MyPage.jsx
|____index.js
Router 组件应该没有问题,因为我所要做的没有 index.js 就是导入MyPage 并执行以下操作:
<Router>
<div>
<Route path="/" component={MyPage} />
</div>
</Router>
这是创建 index.js 文件的正确方法吗?
【问题讨论】:
-
谁告诉你的?从字面上看,React 并没有什么能让它“更好”或“更受欢迎”。事实上,将
index.js用于single 组件只是很混乱。如果您有一个允许您说const { MyComponent, SecondaryComponent, ChildThing, AndMore } = require('./components/);` 的索引,那么肯定这很有用,但是对于单个组件,这个建议几乎没有意义。你能引用你的来源吗? -
你没有有,它只是让你更容易控制你的模块的界面。这不是 React 特定的,它是通用的 JS。
-
你的代码和你的js文件没问题;关于
index.js | ts | html| jsx | tsx这正是每个产品和专业人士所期望的方式,没什么特别的;这就是工具和人们习惯和发展的方式。就像早期编程时代的“Hello World” -
index.js文件就像一个容器,您可以在其中呈现页面的所有子组件。这有助于您将代码拆分成更小的块,从而提高可读性和测试 -
首先,感谢您抽出宝贵时间,但我想我不明白您的回答。好的,从
button.js导入Button组件不是一个好主意,我明白这一点,但我想强调的是而不是导入目录,这实际上会导入 index.js 文件 i> -> 和我的问题:当您导入组件时,是否会默认查找 index.js 文件??
标签: javascript reactjs