使用echo或go的模板在前端显示复杂数据好吗?

Is it good to use echo or go's templates to show complex data in frontend?

Go 的 template 语法没有在前端操作数据的能力。例如,从服务器发送地图,以显示地图中的所有数据,在 html 文件中,没有一种方法来检查数组(在地图中)的索引是否为奇数或甚至。此外,无法在 html 模板中执行数学计算或字符串操作。

所有的数据都应该在服务器端准备好然后发送到前端。这可以显示但很难循环。

Vue 或 React 等前端框架足以做到这一点,但数据应该作为 JSON 发布。但是仅使用 Go 或 Echo 你不能进行复杂的视图操作。这是正确的吗?

这实际上取决于。当您需要在 front-end 代码上进行交互时,您可以使用 client-side/front-end SPA(单页应用程序)框架。此类要求由应用程序的用户体验需求定义。

Echo 模板而言,您是对的。 None 的模板库包括 Go、Java、Node.js 等都是为支持此类操作而设计的。理想情况下,如果您正在做 server-rendered 网络应用程序,那么您必须在代码的 controller/model 部分进行此类计算,然后将所有数据作为上下文发送到模板库或代码,其工作只是将其格式化为 HTML/JSON 或 XML。模板解决方案不应该有如此复杂的数据操作行为。

对于问题的标题:

Is it good to use echo or go's templates to show complex data in frontend?

这绝对是个坏主意——一条没有前途的路。您必须处理 MVC 控制器或模型中的复杂数据,并让模板引擎简单地格式化该数据。或者,如果您正在执行单页应用程序或复杂的交互式 UI 应用程序,则通过 REST/GraphQL API 将您的数据公开为 JSON 并让 front-end 代码使用 fetchXHR 并进行进一步处理。