回答編集履歴

6

余分なbind

2021/11/16 02:07

投稿

FKM
FKM

スコア3660

test CHANGED
@@ -144,8 +144,6 @@
144
144
 
145
145
  props:[
146
146
 
147
- "dataFromChild",
148
-
149
147
  "day",
150
148
 
151
149
  ]

5

詳細を

2021/11/16 02:07

投稿

FKM
FKM

スコア3660

test CHANGED
@@ -1,4 +1,8 @@
1
1
  Vueの場合(Reactでもそうですが)、普通はコンポーネント化して作る方が無難です。この場合だとこんな感じに組み立てていきます。繰り返しはv-forで対処します。
2
+
3
+
4
+
5
+ 省略している部分にカレンダーを呼び出すための数値を制御します。そこまで難しくないので、割愛します。
2
6
 
3
7
 
4
8
 
@@ -8,17 +12,69 @@
8
12
 
9
13
  <template>
10
14
 
11
- <table>
15
+ <table>
12
16
 
13
- <tbody>
17
+ <thead>
14
18
 
15
- <CalTr v-for="week in weeks"><CalTr>
19
+ <tr>
16
20
 
17
- </tbody>
21
+ <th>Sun</th>
18
22
 
23
+ <th>Mon</th>
24
+
25
+ <th>Tue</th>
26
+
27
+ <th>Wed</th>
28
+
29
+ <th>Thi</th>
30
+
31
+ <th>Fri</th>
32
+
33
+ <th>Sat</th>
34
+
35
+ </tr>
36
+
37
+ </thead>
38
+
39
+ <tbody>
40
+
41
+ <CalTr v-for="(week,i) in weeks"
42
+
43
+ :week = "week"
44
+
45
+ ></CalTr>
46
+
47
+ </tbody>
48
+
19
- </table>
49
+ </table>
20
50
 
21
51
  </template>
52
+
53
+ <script>
54
+
55
+ import CalTr from './CalTr.vue'
56
+
57
+ export default{
58
+
59
+ name: 'Calender',
60
+
61
+ components:{
62
+
63
+ CalTr,
64
+
65
+ },
66
+
67
+ data(){
68
+
69
+ return{
70
+
71
+ weeks: [],
72
+
73
+ }
74
+
75
+ },
76
+
77
+ /*以下略*/
22
78
 
23
79
  ```
24
80
 
@@ -30,13 +86,41 @@
30
86
 
31
87
  <template>
32
88
 
33
- <tr>
89
+ <tr>
34
90
 
35
- <CalTd v-for="day in days"></CalTd>
91
+ <CalTd v-for="day in week"
36
92
 
93
+ :day="day"
94
+
95
+ ></CalTd>
96
+
37
- </tr>
97
+ </tr>
38
98
 
39
99
  </template>
100
+
101
+ <script>
102
+
103
+ import CalTd from './CalTd.vue'
104
+
105
+ export default{
106
+
107
+ name: 'CalTr',
108
+
109
+ components:{
110
+
111
+ CalTd,
112
+
113
+ },
114
+
115
+ props:[
116
+
117
+ "week",
118
+
119
+ ],
120
+
121
+ }
122
+
123
+ </script>
40
124
 
41
125
  ```
42
126
 
@@ -48,8 +132,26 @@
48
132
 
49
133
  <template>
50
134
 
51
- <td>...</td>
135
+ <td>{{ day }}</td>
52
136
 
53
137
  </template>
54
138
 
139
+ <script>
140
+
141
+ export default{
142
+
143
+ name: 'CalTd',
144
+
145
+ props:[
146
+
147
+ "dataFromChild",
148
+
149
+ "day",
150
+
151
+ ]
152
+
153
+ }
154
+
155
+ </script>
156
+
55
157
  ```

4

tableタグから追記

2021/11/16 02:06

投稿

FKM
FKM

スコア3660

test CHANGED
@@ -8,7 +8,15 @@
8
8
 
9
9
  <template>
10
10
 
11
+ <table>
12
+
13
+ <tbody>
14
+
11
15
  <CalTr v-for="week in weeks"><CalTr>
16
+
17
+ </tbody>
18
+
19
+ </table>
12
20
 
13
21
  </template>
14
22
 

3

idではなくてin

2021/11/15 09:09

投稿

FKM
FKM

スコア3660

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  <tr>
26
26
 
27
- <CalTd v-for="day id days"></CalTd>
27
+ <CalTd v-for="day in days"></CalTd>
28
28
 
29
29
  </tr>
30
30
 

2

週数と日数で説明した方がいい

2021/11/15 09:07

投稿

FKM
FKM

スコア3660

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 親コンポーネント v-forで数繰り返す
5
+ 親コンポーネント v-forで(4~5)繰り返す
6
6
 
7
7
  ```vue
8
8
 
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- 子コンポーネント(CalTr.vue) v-forで7回繰り返す
19
+ 子コンポーネント(CalTr.vue) v-forで7回(日数)繰り返す
20
20
 
21
21
  ```vue
22
22
 

1

ざっくばらんに説明

2021/11/15 09:06

投稿

FKM
FKM

スコア3660

test CHANGED
@@ -1,14 +1,14 @@
1
- 普通はコンポーネント化して作ります。この場合だとこんな感じに組み立てていきます。
1
+ Vueの場合(Reactでもそうですが)、普通はコンポーネント化して作る方が無難です。この場合だとこんな感じに組み立てていきます。繰り返しはv-forで対処します。
2
2
 
3
3
 
4
4
 
5
- 親コンポーネント
5
+ 親コンポーネント v-forで月数繰り返す
6
6
 
7
7
  ```vue
8
8
 
9
9
  <template>
10
10
 
11
- <CalTr><CalTr>
11
+ <CalTr v-for="week in weeks"><CalTr>
12
12
 
13
13
  </template>
14
14
 
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- 子コンポーネント(CalTr.vue)
19
+ 子コンポーネント(CalTr.vue) v-forで7回繰り返す
20
20
 
21
21
  ```vue
22
22
 
@@ -24,7 +24,7 @@
24
24
 
25
25
  <tr>
26
26
 
27
- <CalTd v-for="td id tr"></CalTd>
27
+ <CalTd v-for="day id days"></CalTd>
28
28
 
29
29
  </tr>
30
30
 
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- 孫コンポーネント(CalTd.vue)
37
+ 孫コンポーネント(CalTd.vue) 
38
38
 
39
39
  ```vue
40
40