Bird
Raised Fist0
Vueframework~5 mins

Composable accepting parameters in Vue - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a composable in Vue 3?
A composable is a reusable function that uses Vue's Composition API features like ref and reactive to share logic between components.
Click to reveal answer
beginner
How do you pass parameters to a composable in Vue?
You pass parameters by defining them as function arguments when creating the composable. This allows the composable to use dynamic values.
Click to reveal answer
intermediate
Why use parameters in composables?
Parameters make composables flexible and reusable by allowing different inputs to customize their behavior for each use case.
Click to reveal answer
beginner
Example: What does this composable do?
<pre>import { ref } from 'vue';
function useCounter(start = 0) {
  const count = ref(start);
  const increment = () => count.value++;
  return { count, increment };
}</pre>
This composable creates a counter starting at the given start value (default 0). It returns a reactive count and an increment function to increase it.
Click to reveal answer
beginner
How does Vue's ref help in composables?
ref creates a reactive value that Vue tracks for changes. When used in composables, it allows components to reactively update when the composable's state changes.
Click to reveal answer
How do you make a composable accept a starting value in Vue?
ABy hardcoding the value inside the composable
BBy using a global variable
CBy adding a parameter to the composable function
DBy passing props to the composable
What Vue feature makes the composable's state reactive?
Aref
Bprops
Cemit
Dwatch
Which of these is a benefit of passing parameters to composables?
APrevents composables from being reactive
BMakes composables reusable with different data
CForces composables to be global
DDisables component updates
What is the default value of the parameter in this composable?
function useCounter(start = 0) { ... }
A1
Bundefined
Cnull
D0
How do you access the reactive value inside a ref in Vue?
AUsing the <code>.value</code> property
BDirectly like a normal variable
CUsing <code>.reactive</code>
DUsing <code>.data</code>
Explain how to create a composable in Vue that accepts parameters and why this is useful.
Think about how functions normally take inputs and how that applies to composables.
You got /5 concepts.
    Describe how Vue's ref works inside a composable and how you use it with parameters.
    Consider how reactive state and parameters combine to make composables powerful.
    You got /5 concepts.

      Practice

      (1/5)
      1.

      What is the main purpose of passing parameters to a Vue composable function?

      easy
      A. To customize the composable's behavior for different uses
      B. To make the composable function run only once
      C. To prevent the composable from using Vue's reactivity
      D. To automatically render a template inside the composable

      Solution

      1. Step 1: Understand composable functions

        Composable functions are reusable pieces of logic in Vue that can be shared across components.
      2. Step 2: Role of parameters in composables

        Parameters allow passing different inputs to the composable so it can behave differently depending on the need.
      3. Final Answer:

        To customize the composable's behavior for different uses -> Option A
      4. Quick Check:

        Parameters customize composables = A [OK]
      Hint: Parameters let composables adapt to different inputs [OK]
      Common Mistakes:
      • Thinking composables run only once
      • Believing parameters disable reactivity
      • Confusing composables with templates
      2.

      Which of the following is the correct way to define a composable that accepts a parameter initialCount?

      function useCounter(???) {
        const count = ref(initialCount)
        return { count }
      }
      easy
      A. useCounter((initialCount))
      B. useCounter()
      C. useCounter(initialCount)
      D. useCounter(initialCount: number)

      Solution

      1. Step 1: Check JavaScript function parameter syntax

        In JavaScript, function parameters are named without types or parentheses inside the parentheses.
      2. Step 2: Match parameter name with usage

        The parameter initialCount must be declared inside the parentheses as initialCount.
      3. Final Answer:

        useCounter(initialCount) -> Option C
      4. Quick Check:

        Function parameter syntax = D [OK]
      Hint: Function parameters go inside parentheses without types [OK]
      Common Mistakes:
      • Adding types like in TypeScript without syntax
      • Using parentheses inside parameter list
      • Leaving parameters empty when needed
      3.

      Given this composable and usage, what will be logged?

      import { ref } from 'vue'
      function useGreeting(name) {
        const greeting = ref(`Hello, ${name}!`)
        return { greeting }
      }
      
      const { greeting } = useGreeting('Alice')
      console.log(greeting.value)
      medium
      A. undefined
      B. "Hello, Alice!"
      C. "Hello, name!"
      D. Error: greeting is not defined

      Solution

      1. Step 1: Understand parameter passing

        The composable receives 'Alice' as the name parameter, so the greeting string becomes "Hello, Alice!".
      2. Step 2: Accessing the ref value

        The greeting is a ref, so to get the string, we use greeting.value, which logs "Hello, Alice!".
      3. Final Answer:

        "Hello, Alice!" -> Option B
      4. Quick Check:

        Ref .value logs "Hello, Alice!" = C [OK]
      Hint: Use .value to get ref content in Vue composables [OK]
      Common Mistakes:
      • Logging the ref object instead of its value
      • Confusing parameter name with string literal
      • Forgetting to import ref from 'vue'
      4.

      Identify the error in this composable that accepts a parameter start:

      import { ref } from 'vue'
      function useTimer(start) {
        const time = ref(start)
        function increment() {
          time++
        }
        return { time, increment }
      }
      medium
      A. Cannot increment a ref directly with ++ operator
      B. Missing return statement for increment function
      C. Parameter start is not reactive
      D. Ref should be initialized with 0, not start

      Solution

      1. Step 1: Check how ref values are updated

        Refs hold their value inside the .value property, so you cannot increment the ref itself.
      2. Step 2: Identify correct increment syntax

        The increment function should update time.value++ instead of time++.
      3. Final Answer:

        Cannot increment a ref directly with ++ operator -> Option A
      4. Quick Check:

        Update ref via .value, not ref itself = B [OK]
      Hint: Use .value to update ref, not the ref variable itself [OK]
      Common Mistakes:
      • Trying to increment ref without .value
      • Thinking parameters must be reactive
      • Forgetting to return functions from composable
      5.

      You want a composable useFilteredList that accepts an array and a filter function as parameters. Which implementation correctly applies the filter reactively?

      import { computed } from 'vue'
      
      function useFilteredList(list, filterFn) {
        const filtered = computed(() => ??? )
        return { filtered }
      }

      What should replace ????

      hard
      A. list.filter(filterFn)
      B. filterFn(list)
      C. computed(() => list.filter(filterFn))
      D. list.value.filter(filterFn)

      Solution

      1. Step 1: Understand composable parameters

        The list parameter is expected to be a ref(array) for proper reactivity in Vue composables.
      2. Step 2: Reactive filtering with computed

        Inside the computed, access the array value with list.value.filter(filterFn) to apply the filter reactively whenever the list changes.
      3. Final Answer:

        list.value.filter(filterFn) -> Option D
      4. Quick Check:

        computed(() => list.value.filter(filterFn)) = C [OK]
      Hint: Use computed(() => list.value.filter(fn)) for reactive filtering [OK]
      Common Mistakes:
      • Using list.filter(filterFn) without .value when list is ref
      • Calling filterFn(list) instead of list.filter(filterFn)
      • Unnecessarily nesting computed inside computed
      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