我在React文档中读到,在JSX代码中不能使用"if"类型语句,因为JSX呈现为javascript的方式,它并不像人们预期的那样有效.
但是,有什么理由认为实现"如果"组件是个坏主意吗?从我最初的测试来看,它似乎工作得很好,这让我想知道为什么不经常这样做?
我的部分意图是让react开发尽可能基于标记,尽可能少使用javascript.在我看来,这种方法更像是一种"数据驱动"的方法.
你可以check it out here on JS Fiddle
<script type='text/javascript' src="https://unpkg.com/react@0.11.0/dist/JSXTransformer.js"></script>
<script type='text/javascript' src="https://unpkg.com/react@0.11.0/dist/react-with-addons.js"></script>
<script type="text/jsx">
/** @jsx React.DOM */
var If = React.createClass({
displayName: 'If',
render: function()
{
if (this.props.condition)
return <span>{this.props.children}</span>
return null;
}
});
var Main = React.createClass({
render: function() {
return (
<div>
<If condition={false}>
<div>Never showing false item</div>
</If>
<If condition={true}>
<div>显示真实项目</div>
</If>
</div>
);
}
});
React.renderComponent(<Main/>, document.body);
</script>
在中运行上述结果:
显示真实项目