javascript - 渲染 2 个函数(学习最佳实践)
问题描述
大家好,我想知道最佳实践来实现我在这个 Codepen 中所拥有的东西:Codepen
我的做法:
function Blog(props) {
const content = props.posts.map(post => (
<div key={post.id}>
<h3>{post.title}</h3>
<p>{post.content}</p>
<hr />
</div>
));
return <div>{content}</div>;
}
function Perso(props) {
const content = props.personnages.map(personnage => (
<div>
<h3>{personnage.name} </h3>
</div>
));
return <div>{content}</div>;
}
const personnages = [{ id: 1, name: "Hello", atck: "1", def: "1", spike: "1" }];
const posts = [
{ id: 1, title: "Hello World", content: "Welcome to learning React!" },
{ id: 2, title: "Installation", content: "You can install React from npm." }
];
ReactDOM.render(
<Perso personnages={personnages} />,
document.getElementById("root")
);
ReactDOM.render(<Blog posts={posts} />, document.getElementById("rootapp"));
我想知道我是否可以做一些比以下片段更好的事情:
ReactDOM.render(
<Perso personnages={personnages} />,
document.getElementById("root")
);
ReactDOM.render(<Blog posts={posts} />, document.getElementById("rootapp"));
如何在单个元素中呈现这些功能?
解决方案
您可以使用一个主要App
的,如周围大多数示例所示。如果您创建了您的应用程序,create-react-app
那么您已经拥有了一个。如果没有,你可以使用这样的东西。
const personnages = [{ id: 1, name: "Hello", atck: "1", def: "1", spike: "1" }];
const posts = [
{ id: 1, title: "Hello World", content: "Welcome to learning React!" },
{ id: 2, title: "Installation", content: "You can install React from npm." }
];
function App() {
return (
<div>
<Blog posts={posts} />
<Perso personnages={personnages} />
</div>
)
}
function Blog(props) {
const content = props.posts.map(post => (
<div key={post.id}>
<h3>{post.title}</h3>
<p>{post.content}</p>
<hr />
</div>
));
return <div>{content}</div>;
}
function Perso(props) {
const content = props.personnages.map(personnage => (
<div>
<h3>{personnage.name} </h3>
</div>
));
return <div>{content}</div>;
}
ReactDOM.render(<App />, document.getElementById("root"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root" />
推荐阅读
- python - Python获取远程文件大小对于多个url来说太慢了
- c - 在c中动态读取文件时分配未知字符[]
- sql - 如何在bigquery中合并两个查询
- google-api - 使用 Gmail API 或 Mail Audit API(或其他 API)监控发件人的附件(仅名称)?
- pytorch - 使用检测器 CUDAERROR 时:没有可在设备上执行的内核映像
- go - go mod tidy go: 更新 go.mod: 打开 C:\Users\WELCOME\go\pkg\mod\github.com\xxxx\go.mod: 访问被拒绝
- sql - 在多个联接中使用同一个表
- android - Snackbar 通过片段导航重叠浮动操作按钮
- amazon-web-services - 如何使用通过 AWS 云形成模板创建的 Sagemaker 笔记本实例上传文件
- python - 在烧瓶中,段落再次被覆盖,但我想单独打印它们