---
title: "Level 1: One component mounts · Lifecycle Line-up · vuejs.school"
description: "The page loads. In which order do setup, a watchEffect and the two mount hooks run?"
canonical_url: "https://vuejs.school/games/lifecycle/1"
meta:
  "og:description": "The page loads. In which order do setup, a watchEffect and the two mount hooks run?"
  "og:image": "https://vuejs.school/_og/d/a_~T25lIGNvbXBvbmVudCBtb3VudHMgwrcgdnVlanMuc2Nob29s%2Cc_OgCard.takumi%2Ctitle_One%2Bcomponent%2Bmounts%2Cdescription_~VGhlIHBhZ2UgbG9hZHMuIEluIHdoaWNoIG9yZGVyIGRvIHNldHVwLCBhIHdhdGNoRWZmZWN0IGFuZCB0aGUgdHdvIG1vdW50IGhvb2tzIHJ1bj8%2Ceyebrow_~TGlmZWN5Y2xlIExpbmUtdXAgwrcgTGV2ZWwgMSBvZiA3%2Ctint_lilac%2Cp_Ii9nYW1lcy9saWZlY3ljbGUvMSI%2Cs_YGOFc2_pddxLLChn.png"
  "og:image:alt": "One component mounts · vuejs.school"
  "og:image:height": "600"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Level 1: One component mounts · Lifecycle Line-up · vuejs.school"
  "twitter:image": "https://vuejs.school/_og/d/a_~T25lIGNvbXBvbmVudCBtb3VudHMgwrcgdnVlanMuc2Nob29s%2Cc_OgCard.takumi%2Ctitle_One%2Bcomponent%2Bmounts%2Cdescription_~VGhlIHBhZ2UgbG9hZHMuIEluIHdoaWNoIG9yZGVyIGRvIHNldHVwLCBhIHdhdGNoRWZmZWN0IGFuZCB0aGUgdHdvIG1vdW50IGhvb2tzIHJ1bj8%2Ceyebrow_~TGlmZWN5Y2xlIExpbmUtdXAgwrcgTGV2ZWwgMSBvZiA3%2Ctint_lilac%2Cp_Ii9nYW1lcy9saWZlY3ljbGUvMSI%2Cs_YGOFc2_pddxLLChn.png"
  "twitter:image:alt": "One component mounts · vuejs.school"
---

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

**Level 1 of 7 · setup, watchEffect, onBeforeMount and onMounted**

# **One component mounts**

The page loads. In which order do setup, a watchEffect and the two mount hooks run?

**What happens**The page loads and App mounts.

**App.vue **

```
const count = ref(0)
watchEffect(() => console.log(count.value))
onBeforeMount(() => log('before mount'))
onMounted(() => log('mounted'))
```

**Deck · tap a card to add it, or drag it into place**

-
-
-
-

**Timeline · first to last**

1. **1** Next card

**Game finished**

## **You finished Lifecycle Line-up**

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

- [**Preview****1****re-rendered****+1****Prediction game****Reactivity Radar**Will the template update? Call it before Vue does.0 of 3 levels done**Start playing**](https://vuejs.school/games/radar)
- [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/lifecycle/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/lifecycle/1#webpage","@type":"WebPage","description":"The page loads. In which order do setup, a watchEffect and the two mount hooks run?","name":"Level 1: One component mounts · Lifecycle Line-up","url":"https://vuejs.school/games/lifecycle/1","isPartOf":{"@id":"https://vuejs.school/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://vuejs.school/games/lifecycle/1"]}],"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"}]}
```