---
title: "Level 2: Arrays and objects · Reactivity Radar · vuejs.school"
description: "Pushes, index writes, Sets, snapshots and the raw object behind a proxy."
canonical_url: "https://vuejs.school/games/radar/2"
meta:
  "og:description": "Pushes, index writes, Sets, snapshots and the raw object behind a proxy."
  "og:image": "https://vuejs.school/_og/d/a_~QXJyYXlzIGFuZCBvYmplY3RzIMK3IHZ1ZWpzLnNjaG9vbA%2Cc_OgCard.takumi%2Ctitle_Arrays%2Band%2Bobjects%2Cdescription_~UHVzaGVzLCBpbmRleCB3cml0ZXMsIFNldHMsIHNuYXBzaG90cyBhbmQgdGhlIHJhdyBvYmplY3QgYmVoaW5kIGEgcHJveHku%2Ceyebrow_~UmVhY3Rpdml0eSBSYWRhciDCtyBMZXZlbCAyIG9mIDM%2Ctint_mint%2Cp_Ii9nYW1lcy9yYWRhci8yIg%2Cs_4idPstdrjBADp9s8.png"
  "og:image:alt": "Arrays and objects · vuejs.school"
  "og:image:height": "600"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Level 2: Arrays and objects · Reactivity Radar · vuejs.school"
  "twitter:image": "https://vuejs.school/_og/d/a_~QXJyYXlzIGFuZCBvYmplY3RzIMK3IHZ1ZWpzLnNjaG9vbA%2Cc_OgCard.takumi%2Ctitle_Arrays%2Band%2Bobjects%2Cdescription_~UHVzaGVzLCBpbmRleCB3cml0ZXMsIFNldHMsIHNuYXBzaG90cyBhbmQgdGhlIHJhdyBvYmplY3QgYmVoaW5kIGEgcHJveHku%2Ceyebrow_~UmVhY3Rpdml0eSBSYWRhciDCtyBMZXZlbCAyIG9mIDM%2Ctint_mint%2Cp_Ii9nYW1lcy9yYWRhci8yIg%2Cs_4idPstdrjBADp9s8.png"
  "twitter:image:alt": "Arrays and objects · vuejs.school"
---

> Index of every page on this site: [llms.txt](https://vuejs.school/llms.txt)

**Level 2 of 3 · collections, nested state and raw objects**

# **Arrays and objects**

Pushes, index writes, Sets, snapshots and the raw object behind a proxy.

**0**** / 8**

```
<script setup>const items = ref(['Vue']) function add() {  items.value.push('Pinia')}</script> <template>  <p>{{ items.length }}</p>  <button @click="add">Add</button></template>
```

**Round 1 of 8**

**Preview**

1

**Add**

**The user clicks **`Add`**. Does the page update?**

**Game finished**

## **You finished Reactivity Radar**

All 3 levels done. Two more games are waiting for you.

- [  1. **1****App****setup**  2. **2****App****onBeforeMount**  3. **3****App****onMounted****Ordering puzzle****Lifecycle Line-up**Put the lifecycle hooks in the order Vue fires them.0 of 7 levels done**Start playing**](https://vuejs.school/games/lifecycle)
- [1\<template>2\<button@click="add">3 {{ count.value }}**bug**4\</button>5\</template>**Spot the bug****Bug Hunt**Find the broken line, then pick the fix.0 of 3 levels done**Start playing**](https://vuejs.school/games/bug-hunt)

[**All games**](https://vuejs.school/games) [**Play again from level 1**](https://vuejs.school/games/radar/1)

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://vuejs.school/#website","@type":"WebSite","description":"A free AI-instructed school for Vue.js. Short tutorials, runnable code and quizzes that adapt to you.","name":"vuejs.school","url":"https://vuejs.school/","publisher":{"@id":"https://vuejs.school/#identity"}},{"@id":"https://vuejs.school/games/radar/2#webpage","@type":"WebPage","description":"Pushes, index writes, Sets, snapshots and the raw object behind a proxy.","name":"Level 2: Arrays and objects · Reactivity Radar","url":"https://vuejs.school/games/radar/2","isPartOf":{"@id":"https://vuejs.school/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://vuejs.school/games/radar/2"]}],"primaryImageOfPage":{"@id":"https://vuejs.school/#logo"}},{"@id":"https://vuejs.school/#identity","@type":"Organization","description":"A free AI-instructed school for Vue.js. Short tutorials, runnable code and quizzes that adapt to you.","name":"vuejs.school","url":"https://vuejs.school","logo":{"@id":"https://vuejs.school/#logo"}},{"@id":"https://vuejs.school/#logo","@type":"ImageObject","caption":"vuejs.school","contentUrl":"https://vuejs.school/apple-touch-icon.png","inLanguage":"en","url":"https://vuejs.school/apple-touch-icon.png"}]}
```