React.js 怎么和后端交互?

javascript

var One = React.createClass({
    render: function(){
        return (
            <div>我是第一个组件</div>
        );
    }
});
var Two = React.createClass({
    render: function(){
        return (
            <div data-var="data">我是第二个组件</div>
        );
    }
});

ReactDOM.render(
    <div>
        <One /><Two />
    </div>,
    document.getElementById('app')
);
html

<div id="app"></div>

把html页面按组件加载出来,但是假如我“Two”组件的“data-var”是需要后端assign的,那我要用什么方式去获取到这个assign的值?
如果是纯html的话还可以按照后端要求直接写标识符让后端渲染出来,如:

html

<div data-var="{dataVar}">我是第二个组件</div>

但显然如果用React.js渲染的话不能用这种方法,难道每个数据都要用ajax吗?这样页面加载的时候还要执行ajax不是速度变慢了?
还是我的开发方式不对?

阅读 22.5k
7 个回答

查看了各类文章终于找到了解决方法。
假如是用php的可以使用php扩展 v8js 不过需要php版本 >= 7
因php版本问题只能放弃,转而使用node.js,有需要可以参考文章:点我点我
PS:node.js的参考文章有部分错误

  1. reactify

不能用字符串,需要加载reactify组件,没有的话需要
npm install reactify --save-dev
  1. <MyComponent number={initProps.num} /<

改为
<MyComponent number={initProps.num} />

服务端渲染,ajax

新手上路,请多包涵

在最外层的 做“同步的”AJAX请求 然后通过props把数据分发到各个组件上

你的这种做法叫做服务端渲染,是服务器通过识别你的字符来替换数据到你的模版中,Java的vm模板,php文件等都是这个做法

但是React.js解决的是浏览器端的View层渲染,因此通常做法是用Ajax拿到需要渲染的全部数据后,在React.js提供的jsx中进行渲染,而React.js解决的非常重要的事情就是虚拟DOM能提高渲染效率

现在提倡后者是因为想把该交给前端的Control层交给前端,让后端更专注于对数据的处理上

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏