質問編集履歴
1
色々と変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,13 +1,26 @@
|
|
1
1
|
vue.jsでルーティングにvue-routerを使うとして
|
2
2
|
|
3
3
|
```
|
4
|
+
import Vue from "vue";
|
5
|
+
import VueRouter from "vue-router";
|
6
|
+
Vue.use(VueRouter);
|
7
|
+
import Page2 from '../pages/page2.vue'
|
8
|
+
|
9
|
+
|
4
10
|
const routes =[
|
5
|
-
|
11
|
+
{
|
6
|
-
|
12
|
+
path: '/page2',
|
7
|
-
name: "User",
|
8
|
-
|
13
|
+
component: Page2
|
9
|
-
|
14
|
+
}
|
10
15
|
];
|
16
|
+
|
17
|
+
const router = new VueRouter({
|
18
|
+
routes,
|
19
|
+
base: process.env.BASE_URL,
|
20
|
+
mode: 'history'
|
21
|
+
});
|
22
|
+
|
23
|
+
export default router;
|
11
24
|
```
|
12
25
|
以上の様なルーティングになっているとします。
|
13
26
|
`$router.push`等で`/api/v1/users/3"`に遷移しurl欄のurlも変化すると思います。
|
@@ -18,12 +31,49 @@
|
|
18
31
|
Rails.application.routes.draw do
|
19
32
|
namespace :api do
|
20
33
|
namespace :v1 do
|
34
|
+
root to: 'home#index'
|
21
|
-
resources :users, only: [:index,
|
35
|
+
resources :users, only: [:index,:show, :update]
|
22
36
|
end
|
23
37
|
end
|
38
|
+
get '/page2', to: 'api/v1/users#show'
|
24
39
|
end
|
40
|
+
|
25
41
|
```
|
26
42
|
この様に定義していたらこちらの`/api/v1/users/3`を見に行ってしまうという寸法です。
|
27
43
|
ユーザがブラウザの更新ボタンを押すということは至ってよくあることだと思うのですが、一般的にこれはどう対策すれば良いのでしょうか?(例えばrailsですと/users/show.html.erbを作成して、更新してもユーザからは同じページを表示してる様に見せるなど)
|
28
44
|
それとも更新を押してもusers.vueを呼び出す様ないい方法があるのでしょうか?
|
29
|
-
SPA周りがあまり詳しくなく疑問に思っています。よろしくお願いします。
|
45
|
+
SPA周りがあまり詳しくなく疑問に思っています。よろしくお願いします。
|
46
|
+
|
47
|
+
|
48
|
+
###追記
|
49
|
+
```ここに言語を入力
|
50
|
+
js構成
|
51
|
+
javascript
|
52
|
+
-packs
|
53
|
+
|_pages2.js
|
54
|
+
|_application.js
|
55
|
+
-pages
|
56
|
+
|_pages2.vue
|
57
|
+
-router
|
58
|
+
|_router.js
|
59
|
+
```
|
60
|
+
|
61
|
+
```ここに言語を入力
|
62
|
+
//application.html.erb
|
63
|
+
<!DOCTYPE html>
|
64
|
+
<html>
|
65
|
+
<head>
|
66
|
+
<title>PerformaApps</title>
|
67
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
68
|
+
<%= csrf_meta_tags %>
|
69
|
+
<%= csp_meta_tag %>
|
70
|
+
|
71
|
+
<%= stylesheet_link_tag 'application', media: 'all' %>
|
72
|
+
<%= javascript_pack_tag 'application' %>
|
73
|
+
</head>
|
74
|
+
|
75
|
+
<body>
|
76
|
+
<%= yield %>
|
77
|
+
</body>
|
78
|
+
</html>
|
79
|
+
```
|