여러 레벨의 React JSX 템플릿을 익스프레스 애플리케이션 (예 : https://github.com/reactjs/express-react-views)에 대한 내 뷰로 사용하고 있으며 가장 낮은 레벨의 템플릿 (default.jsx, 다음 예제의 prop)을 전달하는 가장 좋은 방법을 알고 싶습니다. GitHub 및 내 프로젝트 용)을 {this.props.children}
을 사용하는 모든 템플릿에 추가합니다. 나는 default.jsx 수준으로 설정하는 것이 좋습니다.구성 요소 레벨에서 소품을 정의하는 방법은 무엇입니까?
내 문제는 다음과 같습니다. 소품을 정의하는 올바른 방법 (내가하고 싶은 것은 siteName
)이 <CustomComponent prop="prop value">
구문을 사용하지 않으면 무엇인지 알 수 없습니다. 동일한 레벨에서/구성 요소와 동일한 파일에서이를 수행하는 적절한 방법은 무엇입니까? 아니면 내가 누락 된 추상화 수준이 있습니까? 코드는 다음과 같습니다.
/** @jsx React.DOM */
var SiteHeader = require('../header.jsx');
var DefaultLayout = React.createClass({
render: function() {
return (
<html>
<head>
<h1>{this.props.siteName} - {this.props.title}</h1>
</head>
<body>
<SiteHeader></SiteHeader>
{this.props.children}
</body>
</html>
);
}
});
module.exports = DefaultLayout;
/views/index.jsx
:
/** @jsx React.DOM */
var DefaultLayout = require('./layouts/default.jsx');
var ViewsExport = React.createClass({
render: function() {
return (
<DefaultLayout title={this.props.title}>
<div>Hello, {this.props.name}!</div>
</DefaultLayout>
)
}
});
module.exports = ViewsExport;
/views/header.jsx
:
/** @jsx React.DOM */
var SiteHeader = React.createClass({
return: function() {
<header>
<h1><a href="">{this.props.siteName}<h1>
<nav>
...
</nav>
</header>
}
});
/routes/index.js
(나는 siteHeader을 정의 할, 그리고 그것을 끝까지 전파가)
/views/layouts/default.jsx
exports.index = function(req, res){
res.render('index', { /* props */ });
};
달성하려는 목표가 조금 분명하지 않습니다. 'return ;'. –
daniula