resource component for Vue.js