Bird
Raised Fist0
Vueframework~10 mins

Typing ref and reactive in Vue - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a typed ref for a number.

Vue
const count = ref<[1]>(0);
Drag options to blanks, or click blank then click option'
Anumber
Bobject
Cboolean
Dstring
Attempts:
3 left
💡 Hint
Common Mistakes
Using string instead of number for a numeric ref.
Forgetting to add the type inside < >.
2fill in blank
medium

Complete the code to create a reactive object with a typed property.

Vue
const state = reactive({ name: [1]('') });
Drag options to blanks, or click blank then click option'
Areactive
Bcomputed
Cref
Dwatch
Attempts:
3 left
💡 Hint
Common Mistakes
Using reactive instead of ref for a single property.
Using computed or watch incorrectly here.
3fill in blank
hard

Fix the error in typing a reactive object with a string property.

Vue
const user = reactive<{ name: [1] }>({ name: 'Alice' });
Drag options to blanks, or click blank then click option'
Astring
Bboolean
Cnumber
Dany
Attempts:
3 left
💡 Hint
Common Mistakes
Typing name as number or boolean incorrectly.
Using any without reason.
4fill in blank
hard

Fill both blanks to type a ref holding an array of numbers.

Vue
const numbers = ref<[1]<[2]>>([]);
Drag options to blanks, or click blank then click option'
AArray
Bnumber
Cstring
DSet
Attempts:
3 left
💡 Hint
Common Mistakes
Using string instead of number for array items.
Using Set instead of Array here.
5fill in blank
hard

Fill all three blanks to type a reactive object with a boolean and a string property.

Vue
const settings = reactive<{ [1]: [2], [3]: string }>({ darkMode: true, language: 'en' });
Drag options to blanks, or click blank then click option'
AdarkMode
Bboolean
Clanguage
Dnumber
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing property names or types incorrectly.
Using number instead of boolean for darkMode.

Practice

(1/5)
1. Which Vue function should you use to create a reactive variable holding a simple number with type safety?
easy
A. ref<number>(0)
B. reactive<number>({ value: 0 })
C. ref({ count: 0 })
D. reactive(0)

Solution

  1. Step 1: Understand the use of ref for simple values

    ref<Type> is used to create reactive primitive values like numbers or strings with type safety.
  2. Step 2: Recognize the correct syntax for a typed ref

    The syntax ref<number>(0) correctly creates a reactive number initialized to 0.
  3. Final Answer:

    ref<number>(0) -> Option A
  4. Quick Check:

    Simple reactive value uses ref<Type> = D [OK]
Hint: Use ref<Type> for simple values, reactive<Type> for objects [OK]
Common Mistakes:
  • Using reactive for simple primitive values
  • Omitting the type parameter in ref
  • Using ref with an object instead of reactive
2. Which of the following is the correct syntax to create a reactive object with type safety in Vue 3?
easy
A. const state = ref<{ count: number }>({ count: 0 })
B. const state = reactive<{ count: number }>({ count: 0 })
C. const state = reactive({ count: 0 })
D. const state = ref({ count: 0 })

Solution

  1. Step 1: Identify the correct function for reactive objects

    Use reactive<Type> to create reactive objects with type safety.
  2. Step 2: Check the syntax correctness

    const state = reactive<{ count: number }>({ count: 0 }) correctly types the object and makes it reactive.
  3. Final Answer:

    const state = reactive<{ count: number }>({ count: 0 }) -> Option B
  4. Quick Check:

    Reactive object with type uses reactive<Type> = A [OK]
Hint: Use reactive<Type> for objects, ref<Type> for primitives [OK]
Common Mistakes:
  • Using ref instead of reactive for objects
  • Missing type parameter in reactive
  • Using reactive without an object
3. Given the code:
const count = ref<number>(5);
count.value = 10;
console.log(count.value);

What will be logged to the console?
medium
A. 5
B. undefined
C. 10
D. Error: count is not a function

Solution

  1. Step 1: Understand ref and .value usage

    ref<number>(5) creates a reactive number with initial value 5. To update or read the value, use .value.
  2. Step 2: Follow the code execution

    Setting count.value = 10 updates the reactive value. Logging count.value outputs 10.
  3. Final Answer:

    10 -> Option C
  4. Quick Check:

    ref value updated and logged = 10 [OK]
Hint: Access ref values with .value to get or set [OK]
Common Mistakes:
  • Logging ref directly without .value
  • Confusing reactive object access with ref
  • Expecting initial value after update
4. What is wrong with this Vue 3 code snippet?
const state = reactive<{ count: number }>({ count: 0 });
state.count = 'one';
medium
A. Runtime error: reactive objects are immutable
B. Syntax error: reactive cannot be typed
C. No error, code works fine
D. Type error: assigning string to number property

Solution

  1. Step 1: Check the declared type of reactive object

    The object is typed as { count: number }, so count must be a number.
  2. Step 2: Analyze the assignment

    Assigning 'one' (a string) to count violates the type, causing a type error.
  3. Final Answer:

    Type error: assigning string to number property -> Option D
  4. Quick Check:

    Type mismatch in reactive object property = C [OK]
Hint: Check property types before assigning new values [OK]
Common Mistakes:
  • Ignoring type errors in reactive objects
  • Thinking reactive objects are immutable
  • Confusing syntax errors with type errors
5. You want to create a reactive state in Vue 3 that holds a list of user objects with typed properties id: number and name: string. Which is the best way to type and initialize this state?
hard
A. const users = ref<Array<{ id: number; name: string }>>([])
B. const users = reactive<Array<{ id: number; name: string }>>({})
C. const users = reactive<{ id: number; name: string }>([])
D. const users = ref<{ id: number; name: string }>([])

Solution

  1. Step 1: Decide between ref and reactive for arrays

    Arrays are objects, but Vue recommends using ref for arrays to keep reactivity simple and clear.
  2. Step 2: Apply correct typing for array of objects

    Typing as Array<{ id: number; name: string }> ensures each user object has correct properties.
  3. Step 3: Check initialization syntax

    ref<Array<{ id: number; name: string }>>([]) initializes an empty reactive array with proper typing.
  4. Final Answer:

    const users = ref<Array<{ id: number; name: string }>>([]) -> Option A
  5. Quick Check:

    Typed reactive array uses ref with array type = A [OK]
Hint: Use ref<Array<Type>> for reactive arrays of objects [OK]
Common Mistakes:
  • Using reactive with array type incorrectly
  • Typing reactive as single object instead of array
  • Using ref with object type for array
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard