Bird
Raised Fist0
Vueframework~8 mins

Transition modes (in-out, out-in) in Vue - Performance & Optimization

Choose your learning style10 modes available
Performance: Transition modes (in-out, out-in)
MEDIUM IMPACT
This affects the smoothness and timing of element transitions, impacting rendering speed and visual stability during animations.
Animating element replacement with smooth transitions
Vue
<transition mode="out-in">
  <component :is="currentComponent" />
</transition>
Waits for leave animation to finish before entering new element, reducing layout thrashing and visual jumps.
📈 Performance Gainsingle reflow per transition, reduces CLS significantly
Animating element replacement with smooth transitions
Vue
<transition>
  <component :is="currentComponent" />
</transition>
Default mode triggers simultaneous enter and leave animations causing layout thrashing and visual jumps.
📉 Performance Costtriggers multiple reflows and layout shifts, increasing CLS
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Default mode (simultaneous)2 element changes2 reflows (enter + leave)High paint cost due to layout thrashing[X] Bad
out-in mode (leave then enter)2 element changes1 reflow (sequential)Lower paint cost, smoother transition[OK] Good
in-out mode (enter then leave)2 element changes1 reflow (sequential)Lower paint cost, better perceived responsiveness[OK] Good
Rendering Pipeline
Transition modes control the timing of element insertion and removal, affecting layout recalculations and paint operations during animations.
→Layout
→Paint
→Composite
⚠️ BottleneckLayout due to reflows triggered by simultaneous enter/leave animations
Core Web Vital Affected
CLS
This affects the smoothness and timing of element transitions, impacting rendering speed and visual stability during animations.
Optimization Tips
1Use 'out-in' mode to avoid layout thrashing by sequencing leave before enter.
2Use 'in-out' mode to improve perceived responsiveness by entering new content first.
3Avoid default simultaneous mode for complex element replacements to reduce CLS.
Performance Quiz - 3 Questions
Test your performance knowledge
Which transition mode reduces layout thrashing by waiting for the old element to leave before the new enters?
Ain-out
Bdefault
Cout-in
Dsimultaneous
DevTools: Performance
How to check: Record a performance profile during transition. Look for layout and paint events during enter/leave animations.
What to look for: Multiple layout recalculations and long paint times indicate poor transition mode choice causing layout thrashing.

Practice

(1/5)
1. What does the in-out transition mode do in Vue transitions?
easy
A. No transition happens; elements switch instantly.
B. The old element leaves first, then the new element enters.
C. Both elements enter and leave simultaneously.
D. The new element enters first, then the old element leaves.

Solution

  1. Step 1: Understand transition modes

    Vue transition modes control the order of entering and leaving animations.
  2. Step 2: Recall in-out behavior

    in-out means the new element enters first, then the old element leaves.
  3. Final Answer:

    The new element enters first, then the old element leaves. -> Option D
  4. Quick Check:

    in-out = new enters first [OK]
Hint: Remember: in-out means 'in' happens before 'out' [OK]
Common Mistakes:
  • Confusing in-out with out-in order
  • Thinking both enter and leave happen simultaneously
  • Assuming no animation delay
2. Which is the correct syntax to apply the out-in transition mode in a Vue <transition> component?
easy
A.
B.
C.
D.

Solution

  1. Step 1: Identify correct mode attribute

    The mode attribute on <transition> sets the transition mode.
  2. Step 2: Match mode value for out-in

    The correct value for the mode that makes old element leave first is "out-in".
  3. Final Answer:

    <transition mode="out-in"> -> Option A
  4. Quick Check:

    out-in mode syntax = mode="out-in" [OK]
Hint: Use mode="out-in" exactly for old leaves first [OK]
Common Mistakes:
  • Using mode="in-out" instead of out-in
  • Using invalid mode values like "both" or "enter-leave"
  • Omitting quotes around mode value
3. Given this Vue template snippet:
<transition mode="out-in">
  <component :is="view" />
</transition>

If view changes from "A" to "B", what happens first?
medium
A. Component A leaves, then component B enters.
B. Component B enters, then component A leaves.
C. Both components enter and leave at the same time.
D. No transition occurs; component switches instantly.

Solution

  1. Step 1: Identify transition mode in code

    The mode is set to "out-in", meaning the old component leaves first.
  2. Step 2: Understand transition order

    When view changes, component A leaves first, then component B enters.
  3. Final Answer:

    Component A leaves, then component B enters. -> Option A
  4. Quick Check:

    out-in mode = old leaves first [OK]
Hint: out-in means old leaves before new enters [OK]
Common Mistakes:
  • Thinking new enters before old leaves in out-in mode
  • Assuming simultaneous enter and leave
  • Ignoring the mode attribute effect
4. You wrote this Vue transition:
<transition mode="in-out">
  <div v-if="show">Hello</div>
</transition>

But the old element leaves before the new one enters. What is the likely mistake?
medium
A. You need to add a key attribute to the div.
B. You forgot to add v-show instead of v-if.
C. You used mode="in-out" but expected out-in behavior.
D. You must wrap the element in a <transition-group> instead.

Solution

  1. Step 1: Analyze transition mode and behavior

    The mode is set to "in-out", which means new enters first, old leaves after.
  2. Step 2: Compare expected and actual behavior

    The old element leaves before new enters, which matches "out-in" mode, not "in-out".
  3. Final Answer:

    You used mode="in-out" but expected out-in behavior. -> Option C
  4. Quick Check:

    in-out mode means new enters first [OK]
Hint: Match mode to expected order: in-out vs out-in [OK]
Common Mistakes:
  • Confusing in-out and out-in modes
  • Thinking v-if vs v-show affects mode order
  • Assuming transition-group is needed for single elements
5. You want to create a Vue transition where the old element fades out completely before the new element fades in. Which transition mode and setup should you use?
hard
A. Use mode="in-out" with CSS fade-in on enter and fade-out on leave.
B. Use mode="out-in" with CSS fade-out on leave and fade-in on enter.
C. Use no mode and rely on simultaneous fade animations.
D. Use mode="both" with combined fade animations.

Solution

  1. Step 1: Understand desired animation order

    You want the old element to fade out completely before the new element fades in.
  2. Step 2: Choose correct transition mode

    out-in mode makes the old element leave first, then the new enters, matching the requirement.
  3. Step 3: Confirm CSS setup

    Use CSS classes for fade-out on leave and fade-in on enter to achieve smooth transitions.
  4. Final Answer:

    Use mode="out-in" with CSS fade-out on leave and fade-in on enter. -> Option B
  5. Quick Check:

    Old fades out first = out-in mode [OK]
Hint: Old fades out first? Use out-in mode [OK]
Common Mistakes:
  • Using in-out mode which enters new before old leaves
  • Assuming simultaneous fades without mode
  • Using invalid mode values like "both"
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