1const Player = {
2 template: `<div><div>{{striker.name}}*</div>
3 <div>{{nonStriker.name}}</div>
4 </div>`,
5 data() {
6 return {
7 player1: {name: 'Rohit'},
8 player2: {name: 'Virat'},
9 }
10 },
11 props: {
12 run: { type: Number, default: 0 },
13 },
14 computed: {
15 striker() {
16 return this.run % 2 == 0 ? this.player1 : this.player2
17 },
18 nonStriker() {
19 return this.run % 2 == 1 ? this.player1 : this.player2
20 },
21 },
22}
23
24const Run = {
25 template: `<button @click="$emit('run-changed',
26run)">{{run}}</button>`,
27 props: { run: Number },
28}
29
30new Vue({
31 el: '#app',
32 template: `<div>
33 <Player :run='score'/>
34 <div style='display: flex'>
35 <Run :run="3" @run-changed = 'runChanged'/>
36 <Run :run="4" @run-changed = 'runChanged' />
37 </div>
38 </div>`,
39 components: { Run, Player },
40 data: {
41 score: 0,
42 },
43 methods: {
44 runChanged(run) {
45 this.score = run
46 },
47 },
48})