在PHP循环中生成ReactJS

时间:2016-10-19 10:36:58

标签: php reactjs

我是REACT的新手,特别是从服务器中提取信息。我的后端内部没有任何API,所以......我可以生成如下的反应代码吗?

我的组件示例:

var Test= React.createClass({

    render: function () {
        return (
            <div>
                <p>
                    This is my test: {this.props.name}
                </p>
            </div>
        );
    }
});

我认为我能做什么&#34;渲染&#34;这个反应组件有一个PHP循环:

<script type="text/babel">
    <?php foreach($tests as $test){ ?>

        ReactDOM.render(

            <div className="text-center">
                <Test name="Test 1" />
                <Test name="laralala"  />        
            </div>

        ,document.getElementById("test")
        );


    <?php}  ?>
</script>

但我认为以前的方式&#34;这是一个完全不好的做法......有人可以帮我一点吗?我的目的不是要改变后端的任何东西......

非常感谢。

1 个答案:

答案 0 :(得分:1)

从PHP访问数据

一种可能的解决方案是将您的数据(由PHP生成)作为全局/静态JS变量放入生成的HTML页面,如var data = <?php echo json_encode($data); ?>;

只要您最初只需要数据,这将正常工作。您将遇到的问题是,每次更新$data时都必须重新加载页面(例如,通过表单)。这种情况再次出现在所有这些“单页应用程序”逻辑中。但我想如果你没有API,你就会坚持使用这个解决方案。

<强> @SPA

React目前风靡一时。但是如果你不需要它的所有功能(使用带有路由,客户端状态的SPA,......)我会建议使用简单而强大的东西,比如jQuery。使用它很好,即使在2016年。您还可以查看Polymer或Web组件。

如果您还不知道React并且只需要它来呈现一些HTML,我认为您不应该学习它。还有其他很好的替代方法来呈现动态HTML(这不是PHP最初的模式吗?!)。