Closed hasyrails closed 4 years ago
各リンクに対応するページとして表示させるコンポーネント は app/javascript/pages/ 下に保存する
Vue.jsにVue Routerを導入してルーティングを行う方法
// app/javascript/router/index.js
import Register from '../pages/Register'
Vue.use(VueRouter);
const routes = [
{ path: '/register', component: Register },
];
const router = new VueRouter({
routes,
mode: 'history'
});
export default router;
// app/javascript/hello_vue.js
document.addEventListener('DOMContentLoaded', () => {
const app = new Vue({
+ router,
render: h => h(App)
}).$mount()
document.body.appendChild(app.$el)
console.log(app)
})
この設定だけでは表示できないことに注意
Rails.application.routes.draw do
root to: 'home#index'
end
Railsにとっては
/register
というパスは知らないと怒られる
Rails.application.routes.draw do
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
root to: 'home#index'
+ get '*path', to: 'home#index'
end
画面のルーティングはフロント側で管理したいため、サーバー側ではルートパス以外へのGETリクエストをルートパスにリダイレクトする
ユーザー登録ページを実装する