手头有个 Toy project,本来是纯 Rails 项目,大概就首页,列表,内容,这种典型的博客式网站。 现在打算用 Vue.js 练练手改成 SPA,可以学习下 JavaScript。
抓了 vuejs-rails 的文档看了许久,突然意识到,要用 vue-router 好像要禁用 Rails 自己的路由才行? 要把流量全部导到 SPA 的 HTML 页面上,然后再让 JavaScript 去读地址栏再路由?
你们玩这种前端框架的时候(不限于 Vue),都是怎么玩的呢?
← 前端菜鸟,亿脸懵逼。
#3 楼 @u1440247613 #4 楼 @Rei 所以像 vuejs-rails 这样的东西配合 vue-router 会很蛋疼,对不对? Rails 负责 /api,前端全部 HTML+JS 会比较舒服?
我用的是 react-router,不过应该差不多。关掉 turbolinks,把前端路由再写一遍到 rails 路由上,页面返回一个空的 html 就行了。加载后浏览器会根据 URL 渲染的,状态可以丢 localstorage。
在只有少量页面交互比较复杂的情况下,rails+vuejs 可以的,比纯前端前后分离成本低。
rails 里,你可以用 vue-rails, 这种使用方法的话,就不建议你去用 vue-router,vuex 这种东东了,直接用最基本的 vuejs 用法,可以套个 vue-validate, 用 vue-rails 的坏处在于,你没办法写 xx.vue 这种文件,而是写的 js + html template, 参考https://rlafranchi.github.io/2016/03/09/vuejs-and-rails/(提供了源码).
如果 rails 里,你想写 xx.vue 这种,那就得引入 webpack, 或者 vue-browserify 了,帮你做预处理,参考 https://ruby-china.org/topics/30051.
但是如果只是想尝试 vuejs,建议放弃 rails,避免干扰嘛,直接找个纯 vue spa 的项目看源码,如https://github.com/misterGF/CoPilot