bsh*_*ack 4 javascript jsx handlebars.js reactjs
我现在主要使用Handlebars JS,但我正在研究JSX.是否有一个等同于Handlebars部分的JSX?我想知道我是否可以创建一些可以在几个不同的JSX视图中重用的标记.
它不提供部分内容.关于React的一些事情:
一般来说,我的经验法则是组件应遵循单一责任原则或关注点分离原则.如果某些东西似乎不适合某个组件,那么你可能在其他两个组件中遇到问题,并且可能会重新考虑它们:)
在考虑组件时要考虑另外几条经验法则:
与此同时,不要发疯,把一切都变成一个组件.即你不(通常)想要:
<Letter>R</Letter><Letter>e</Letter><Letter>a</Letter><Letter>c</Letter><Letter>t</Letter>
这是一个非常简单的例子:
'use strict';
const OuterComponent = React.createClass({
render() {
return (
<div>Outer{this.props.children}</div>
);
}
});
const ReusableComponent = React.createClass({
render() {
return (
<div>Am I reusable? {this.props.reusable && 'Yeah!' }</div>
);
}
});
ReactDOM.render(
<OuterComponent>
<ReusableComponent reusable={true}/>
</OuterComponent>,
document.getElementById('container')
);
Run Code Online (Sandbox Code Playgroud)
将呈现:
OuterComponent
Am I reusable? Yeah!
Run Code Online (Sandbox Code Playgroud)
但是请注意,creatClass
如果您没有使用可变状态(通过组件提供给您this.state
),那么使用提供的内容比您可能需要的多,您可以轻松使用有时称为"无状态功能组件"(因为它们)是,无国籍,并由功能返回).这些很容易就是箭头函数隐式返回JSX(它本质上只是React.createElement()
生成器)
const OuterComponent = (props) => <div>Outer{this.props.children}</div>;
const ReusableComponent = (props) => <div>Am I reusable? {this.props.reusable && 'Yeah!' }</div>;
ReactDOM.render(
<OuterComponent>
<ReusableComponent reusable={true}/>
</OuterComponent>,
document.getElementById('container')
);
Run Code Online (Sandbox Code Playgroud)