将twig与react.js集成

时间:2017-05-06 10:16:13

标签: php symfony reactjs twig

我已经使用php symphony及其twig模板系统成功构建了一个webapp,但现在需求已经改变,我必须使用node react.js。我已经阅读了一些关于react.js的文档,但在我严格的时间范围内,我仍然迷失在最佳方法上。有关如何安全快速地完成此任务的任何帮助都值得赞赏,即使在高级时也是如此。 有人如何在像这样的模板中实现react.js?

{% extends 'admin/base.html.twig' %}
{% block content %}
Fill This form
{{ form(form, {'attr': {'novalidate': 'novalidate'}}) }}
{{ form_start(form) }}
{{ form_widget(form) }}
    <input type="hidden" name="token" value="{{ csrf_token('action') }}" />
{{ form_end(form) }}
{% endblock %}

EDIT 由于我的项目的大小,重新启动表单,表和其他反应将需要几个月......所以我让我的symphony应用程序将表单和表格html作为JSON字符串返回,我在React中处理表单,就像JADE内容一样。 ..我希望这不会表现出安全威胁,我也在问它是不是太蹩脚了。感谢。

3 个答案:

答案 0 :(得分:5)

简单地说,你不能快速做到。 React是一个前端JS框架。 Twig是一款前端模板引擎。虽然可以让它们协同工作,但从这个角度来看你的项目是没有意义的。一起使用Twig和React类似于将螺丝刀放入螺丝中,然后用锤子敲击它。

用React完全替换你的Twig用法会更有意义。

答案 1 :(得分:3)

按照以下步骤

  1. 创建普通路由器的api路由器版本
  2. 将Router / api重定向到路由器
  3. 将api详细信息定义中的_format默认参数设置为json
  4. 构建您的ReactJS以使用Json与您的服务器进行通信
  5. 当我遇到同样的问题时,这些是我的紧急响应步骤,但我后来仍然经历了以后转换所有内容的严格工作,因为我的json充满了html标签。它帮助了时间,它给了我购买时间的机会

答案 2 :(得分:1)

使用react-twig:

import ReactTwig from 'react-twig'

<ReactTwig template="Kittens say: {{ variable }}" data={{ variable: 'meow' }} />
相关问题