【问题标题】:Share templates between React/Vue.js and PHP + HAML在 React/Vue.js 和 PHP + HAML 之间共享模板
【发布时间】:2017-02-08 23:12:18
【问题描述】:

我正在为我的下一个项目选择框架,但遇到了一个棘手的问题:如何在服务器端 PHP 和客户端 Javascript 之间共享模板?

在服务器上,我的应用程序将使用 PHP 编写,使用 Symfony、Twig 和 MtHAML。作为早期的 GUI 原型,我的模板很少,我非常喜欢 HAML,因为它将我的模板减半。

在客户端,我想使用 Vue.js 或 React 或类似的东西(和 jQuery 意大利面条怪物说再见)。我还没有决定在这里使用什么。我喜欢 ES6 类语法。客户端将是一组相对简单的 SPA——带有一些 JS 的老式独立页面,以使它们更具交互性。因此,客户端上不会有路由或操作浏览器历史记录,但我仍然想在这里和那里更新已经加载的页面。

所以,我需要在两个地方使用模板:PHP 中的服务器端和 Javascript 中的客户端。问题是,如何在双方共享一个模板?

我正在考虑将带有 Dust.js/php(Mustache 太笨)的 HAML 模板编译成 Javascript 或类似的方法。另一种方法是从 HAML 渲染 Vue 模板(Gitlab 会这样做),并以某种方式将它们预处理/后处理为 PHP 模板。但我相信也有很多人在处理这个问题。不幸的是,Web 上的大多数资源都已过时或非常混乱。有现成的解决方案吗?

【问题讨论】:

    标签: php reactjs vue.js symfony mthaml


    【解决方案1】:

    我之前解决过类似的问题,对我来说最好的解决方案是使用 Symfony 构建一个体面的 API,然后使用一些 js 框架作为前端。在两个环境之间处理模板是一件非常痛苦的事情。也许你会选择不同的方法,只是我的一个建议......

    【讨论】:

    • 当然,我有一个不错的 JSON REST API。问题是,一旦我获取/更新了某个实体,我需要将其呈现给用户——很可能以与之前的服务器端模板相同的方式呈现它,但使用的是新数据。除非您打算获取页面的已呈现 HTML 片段。
    猜你喜欢
    • 2012-07-14
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2021-09-18
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多