Kid*_*g_C 4 javascript reactjs
我是 Nodejs + React 的新手,我想这是一个基本的 React 语法。我只是不习惯它来自另一种语言。我想确认一下我的说法是否正确:
我正在尝试一个开放的反应项目,该项目已成功部署并且肯定可以工作。
在入口文件中,index.js:
...some code...
import AdminLayout from "layouts/Admin/Admin.js";
...some code...
ReactDOM.render(
<ThemeContextWrapper>
<BackgroundColorWrapper>
<BrowserRouter>
<Switch>
<Route path="/admin" render={(props) => <AdminLayout {...props} />} />
<Route path="/rtl" render={(props) => <RTLLayout {...props} />} />
<Redirect from="/" to="/admin/dashboard" />
</Switch>
</BrowserRouter>
</BackgroundColorWrapper>
</ThemeContextWrapper>,
document.getElementById("root")
Run Code Online (Sandbox Code Playgroud)
对于组件AdminLayout,它是从 导入的layouts/Admin/Admin.js。AdminLayout但是,我检查了该文件,根本没有命名的变量,layouts/Admin/Admin.js如下:
...some code...
function Admin(props) {
...some code...
}
export default Admin;
Run Code Online (Sandbox Code Playgroud)
只有被Admin导出。
那么,在react中,是否可以导入不同名称的组件呢?
我做了一些搜索,但无法对这个小细节进行任何描述。
这实际上与 React 无关,而是与Javascript 模块有关。
由于 Admin 组件是作为默认导出导出的:
export default Admin;
Run Code Online (Sandbox Code Playgroud)
您确实可以使用任何名称导入它。
该行:是您可以更准确地看到那里发生的情况的import AdminLayout from "layouts/Admin/Admin.js";简写:您正在从中导入默认导出的模块并将其命名为 AdminLayout。import {default as AdminLayout} from "layouts/Admin/Admin.js";Admin.js
您也可以在文件中使用命名导出Admin.js:
export function Admin(props) {
...some code...
}
Run Code Online (Sandbox Code Playgroud)
或者:
function Admin(props) {
...some code...
}
export {Admin}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您必须使用其名称导入模块(显然这也是您的 React 组件的名称):
import { Admin } from "layouts/Admin/Admin.js";
// In your render function you'll have at some point:
// ... <Route path="/admin" render={(props) => <Admin {...props} />} />
Run Code Online (Sandbox Code Playgroud)
但请注意,您也可以重命名导入的命名导出:
import { Admin as AdminLayout } from "layouts/Admin/Admin.js";
// In your render function you'll have at some point:
// ... <Route path="/admin" render={(props) => <AdminLayout {...props} />} />
Run Code Online (Sandbox Code Playgroud)
还值得注意的是,虽然每个模块可以有多个命名导出:
export function Foo(){};
export const bar;
Run Code Online (Sandbox Code Playgroud)
您只能有一个默认导出。
| 归档时间: |
|
| 查看次数: |
6464 次 |
| 最近记录: |