File tree Expand file tree Collapse file tree 3 files changed +18
-22
lines changed Expand file tree Collapse file tree 3 files changed +18
-22
lines changed Original file line number Diff line number Diff line change @@ -68,18 +68,7 @@ import ProductReview from './ProductReview.vue';
68
68
export default class Product extends Vue {
69
69
@Prop ({default: false }) private premium! : boolean ;
70
70
@Prop () private cartLength! : number ;
71
-
72
- product = {
73
- name: " Vue Socks" ,
74
- brand: " Vue" ,
75
- price: 5 ,
76
- variants: [
77
- {id: 1 , color: " green" , inventory: 3 },
78
- {id: 2 , color: " blue" , inventory: 5 }
79
- ],
80
- inventory: 3 ,
81
- reviews: []
82
- };
71
+ @Prop () private product! : any ;
83
72
84
73
selectedVariantIndex = 0 ;
85
74
Original file line number Diff line number Diff line change @@ -9,31 +9,28 @@ const productList = [{
9
9
brand : "Vue" ,
10
10
price : 5 ,
11
11
variants : [
12
- { id : 1 , color : "green" } ,
13
- { id : 2 , color : "blue" }
12
+ { id : 1 , color : "green" , inventory : 4 } ,
13
+ { id : 2 , color : "blue" , inventory : 4 }
14
14
] ,
15
- inventory : 3 ,
16
15
reviews : [ ]
17
16
} ,
18
17
{
19
18
name : "Angular Socks" ,
20
- brand : "angular " ,
19
+ brand : "Angular " ,
21
20
price : 15 ,
22
21
variants : [
23
- { id : 1 , color : "red" } ,
24
- { id : 2 , color : "blue" }
22
+ { id : 1 , color : "red" , inventory : 4 } ,
23
+ { id : 2 , color : "blue" , inventory : 4 }
25
24
] ,
26
- inventory : 3 ,
27
25
reviews : [ ]
28
26
} ,
29
27
{
30
28
name : "npm Socks" ,
31
29
brand : "npm" ,
32
30
price : 3 ,
33
31
variants : [
34
- { id : 1 , color : "red" } ,
32
+ { id : 1 , color : "red" , inventory : 4 } ,
35
33
] ,
36
- inventory : 3 ,
37
34
reviews : [ ]
38
35
} ] ;
39
36
Original file line number Diff line number Diff line change 1
1
<template >
2
2
<div >
3
- <Product :premium =" premium" @add-to-cart =" updateCart" @remove-from-cart =" removeFromCart" :cartLength =" cart.length" ></Product >
3
+ <Product v-for =" product in products"
4
+ :key =" product.brand"
5
+ :premium =" premium"
6
+ :product =" product"
7
+ @add-to-cart =" updateCart"
8
+ @remove-from-cart =" removeFromCart"
9
+ :cartLength =" cart.length" ></Product >
4
10
5
11
<div class =" cart" >
6
12
{{ cart.length }}
@@ -22,6 +28,10 @@ export default class Home extends Vue {
22
28
premium = true ;
23
29
cart: string [] = [];
24
30
31
+ get products() {
32
+ return this .$store .state .products ;
33
+ }
34
+
25
35
updateCart(product : any ) {
26
36
console .log (" Adding to cart:" , product );
27
37
this .cart .push (product );
You can’t perform that action at this time.
0 commit comments