在过去的几年里,我一直在MEAN堆栈上构建单页应用程序并且喜欢它。但是,默认情况下缺乏SEO,有时候一些性能问题对我来说是一个真正的问题。所以我开始研究构建同构应用程序。我查看了这些教程:
http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
http://engineering.devmag.io/post/1/creating-an-isomorphic-blogging-app-using-react-and-flux
使用我当前的SPA版本,我有一个主index.html文件(包含正文和头部,页眉,页脚,导航和要加载的脚本),然后我有一个使用Angular&#39加载的视图目录; s ng-view
。这非常容易维护前端html,因为页面的所有代码都将位于单个视图文件中。
然而,我所研究的同构构建(使用React和Flux)的教程将html拆分为模块,每个模块都有自己的文件并混合到javascript中。我觉得这很丑陋,很难维护。查看输出文件中的代码,很难看到生成的页面会是什么样子。它看起来并不是非常语义,似乎又回到了以前在PHP应用程序中构建模块化html的老式方法。
有没有办法维护我们从Angular SPA中享受的简单路由和html视图结构,同时能够以同构方式在服务器上呈现?
注意我并不是简单地使用像PhantomJS这样的内容在服务器上呈现内容。我仍然想要完整的同构体验,首先点击一个页面提供完全呈现的内容,然后后续交互在客户端执行javascript。