新手问题 将 erb 拿到前端渲染如何?

mizuhashi · 2016年11月07日 · 最后由 dsh0416 回复于 2016年11月08日 · 2111 次阅读

借助 opal 可以渲染 erb 模板,这样后端一些条件渲染的模板就可以直接放到前端,然后传实例变量就行了。前端发起 ajax 请求的时候带一份当前 path 信息,然后如果和当前 action 是同一套模板,可以直接返回 action 的实例变量,否则就把模板也一块往前传。在前端触发重渲染也是可以的。

简单地试了一下,后端递归去 render 一份 erb 还是可以实现的,view 都不用改,当然不能有 helper 方法。倒是 opal 的 erb 渲染暂时搞不定,它好像在新版把渲染 erb 的功能给删了。。我个人认为这比 react.rb 有搞头不少,做出来就是现成的 SSR

opal 玩家沙发。。。

你真的以为用 Ruby 能写出 Javascript 么?机制都完全不一样。简单的逻辑,套套模版应该是没有问题,稍复杂一点点步步都是坑。与其填这些没必要的坑,不如用合适的工具做合适的事情。

Opal 作者今年已经写了个类似 React 的东西了,今年 RubyKaigi 的 Keynote 之一。

#2 楼 @billy 我的意思不是用 ruby 写 js,而是让后端在 render 的时候,维护一套 partial 的依赖,然后把需要用到的 partial 传到前端渲染。也就是对一个现有的 rails 项目,不用改动 view 层任何代码,就能让前端在发起 action 的时候自动获取 partial 模板在前端渲染。

也就是理想状态下你的 view 都写在后端 erb,每个 erb 相当于 React.PureComponent,自动渲染,不需要任何 js 代码。

@mizuhashi 简单地做我觉得是没有问题,或者是只拉取后端部分大致没有交互的模版都可以。但如果要全局做,还要强交互,那我就觉得很难,而且没有必要,稍复杂一点可能会耦合到不想再看。

#4 楼 @mizuhashi 其实还有些类似的框架,甚至有支持 SSR 啊什么的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号