Rails 3.1+ asset-pipeline gem to provide Vue.js
- vue v2.5.13
- vue-router v3.0.1
- vue-resource v1.3.5
- vuex v3.0.1
- vue-router v3.0.0 has breaking changes for TypeScript: https://github.com/vuejs/vue-router/releases/tag/v3.0.0
- vuex v3.0.0 has breaking changes for TypeScript: https://github.com/vuejs/vuex/releases/tag/v3.0.0
Have in your Gemfile:
gem 'vuejs-rails'
And in your application.js manifest:
//= require vue
//= require vue-router (optional)
//= require vue-resource (optional)
//= require vuex (optional)
If your application.js
requires TurboLinks (a default setting for new Rails apps), you should strongly consider disabling it, as it will cause pages to load without reloading the Javascript.
In app/views/layouts/application.html.erb
, move this line from the head of the document to the end of the body:
<%= javascript_include_tag 'application' %>
You may write your Vue.js code directly in your views using <script>
tags, or in a separate Javascript file (recommended).
Starting from version '>= 2.3.2', by default, gem uses minified versions in production and full versions otherwise.
You can override this behavior by setting Vue.development_mode
flag:
Vue.development_mode = true
You can do it in e.g. config/initializers/vue_config.rb
, your environment initializers.
Make sure to clean your assets cache (rake tmp:cache:clear
) after changing state of the flag.
Contributions are welcome, please follow GitHub Flow