0
0
Vueframework~20 mins

Reactive Map and Set in Vue - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Reactive Map and Set Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What is the output when updating a reactive Map in Vue?
Consider the following Vue 3 component using the Composition API and a reactive Map. What will be displayed after clicking the button once?
Vue
import { reactive } from 'vue';

export default {
  setup() {
    const map = reactive(new Map([['a', 1]]));
    function update() {
      map.set('a', map.get('a') + 1);
    }
    return { map, update };
  },
  template: `<div><button @click="update">Update</button><p>{{ map.get('a') }}</p></div>`
}
A1
BNaN
Cundefined
D2
Attempts:
2 left
💡 Hint
Remember that reactive Map tracks changes to its entries and updates the template accordingly.
state_output
intermediate
2:00remaining
How many items are in the reactive Set after adding duplicates?
Given this Vue 3 setup with a reactive Set, what is the size of the Set after running addItems()?
Vue
import { reactive } from 'vue';

export default {
  setup() {
    const set = reactive(new Set());
    function addItems() {
      set.add('apple');
      set.add('banana');
      set.add('apple');
    }
    addItems();
    return { set };
  },
  template: `<p>Set size: {{ set.size }}</p>`
}
A2
B3
C1
D0
Attempts:
2 left
💡 Hint
Sets do not allow duplicate entries.
📝 Syntax
advanced
2:00remaining
Which option correctly creates a reactive Map and updates it in Vue 3?
Select the code snippet that correctly creates a reactive Map and updates a key's value so Vue tracks the change.
Aconst map = reactive(new Map()); map['key'] = 'value'; map['key'] = 'newValue';
Bconst map = reactive(new Map()); map.set('key', 'value'); map.set('key', 'newValue');
Cconst map = reactive({}); map.set('key', 'value'); map.set('key', 'newValue');
Dconst map = reactive(new Map()); map.key = 'value'; map.key = 'newValue';
Attempts:
2 left
💡 Hint
Remember that Map methods like set() must be used to update entries.
🔧 Debug
advanced
2:00remaining
Why does this Set not trigger updates in Vue?
This Vue 3 component uses a Set but the template does not update when items are added. What is the cause?
Vue
import { reactive } from 'vue';

export default {
  setup() {
    const set = new Set();
    function addItem(item) {
      set.add(item);
    }
    return { set, addItem };
  },
  template: `<div><button @click="addItem('x')">Add</button><p>Count: {{ set.size }}</p></div>`
}
AVue does not track mutations on plain Set objects using methods like add(), so template won't update.
BThe reactive() function cannot wrap Set objects at all.
CThe template syntax {{ set.size }} is invalid for Sets.
DThe addItem function is not called correctly in the template.
Attempts:
2 left
💡 Hint
Check if Vue tracks changes made by Set methods and if the Set is reactive.
🧠 Conceptual
expert
3:00remaining
What is the best way to iterate a reactive Map in Vue 3 templates?
Vue 3 tracks changes to reactive Maps via set(), but to iterate over entries in a template (e.g., with v-for), which approach ensures Vue tracks changes and updates the template correctly?
AUse a shallow reactive Map and manually trigger a dummy ref update after set().
BReplace the entire Map with a new reactive Map instance on each update.
CUse a computed property that returns Array.from(map.entries()) and render that in the template.
DWrap the Map in a ref and update the ref's value with a new Map copy on each change.
Attempts:
2 left
💡 Hint
Think about how Vue handles iteration over Map/Set in templates.