【问题标题】:Implementing reactive templates in golang在 golang 中实现响应式模板
【发布时间】:2016-11-11 16:11:18
【问题描述】:

我从 Meteor.js 来到 Go,虽然它充满了很棒的功能,但对我来说有点太黑盒了。 Meteor 最棒的事情之一是 blaze,它使他们的模板引擎反应灵敏。数据库更改立即传播到 UI。

但是,在 Go 中,除了可能尝试集成 React 之外,似乎不存在这样的解决方案。有没有一种好方法可以让 Go 的模板(例如 {{range}} 之类的东西)具有响应性,以便它们立即响应数据库更改?

就上下文而言,我们现在拥有的是这样的(在 JS 中):

$(".delete-button").click(function (e) {
    obj = $(this).closest(".object");
    id = $(obj).data("id");
    $("[data-id=" + id + "]").hide();

    // try to delete the element from the table
    database.delete(id, function (err) {
        if (err) {
            $("[data-id=" + id + "]").show();
            log(err);
            return;
        }
    });
});

这很好,但对于更细微的事情(例如编辑)来说有点令人沮丧。任何想法或帮助将不胜感激。

【问题讨论】:

  • 据我所知,meteor 不是一个应用程序,它包含不同的组件。服务器端引擎是节点,反应部分是 vue.js。 Go 和meteor.js 不能比较,因为meteor 和node.js 也不能比较,因为node.js 只是meteor 的一部分。要在 Go 中实现像流星一样的反应式模板,您可以将 vue.js 与 gorilla/websocket 和 mongoDB 一起使用。如果您搜索,您会很容易找到一些针对不同架构的样板。

标签: javascript templates go reactive-programming go-templates


【解决方案1】:

值得一看Hugo

它是一个用 go 编写的静态站点生成器,它支持LiveReload,正如您所描述的。天亮了。

【讨论】:

    【解决方案2】:

    不,不要将服务器端的渲染模板与在浏览器中运行代码和修改 DOM 混淆。更新渲染模板的唯一方法是刷新整个页面,除非你在那里注入一些 JS 代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-15
      • 2011-03-04
      • 2016-11-14
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多