我在 React 文档中读到“if”类型语句不能在 JSX 代码中使用,因为 JSX 呈现为 javascript 的方式,它不会像人们预期的那样工作。
但是有什么理由说明实现“if”组件是个坏主意?从我最初的测试来看,它似乎工作正常,让我想知道为什么不经常这样做?
我的部分目的是让 React 开发尽可能多地基于标记 - 使用尽可能少的 javascript。对我来说,这种方法更像是一种“数据驱动”方法。
<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>Showing true item</div>
</If>
</div>
);
}
});
React.renderComponent(<Main/>, document.body);
</script>
运行上述结果:
显示真实项目