If isVisible is undefined, what is the problem and how to fix it?
medium
A. Both elements will show; fix by initializing isVisible to true.
B. No problem; Vue treats undefined as true.
C. Both elements will not render; fix by initializing isVisible to false.
D. v-if element won't render; v-show element is in the DOM but hidden; fix by defining isVisible as a boolean.
Solution
Step 1: Understand how undefined affects v-if and v-show
v-if treats undefined as false, so the element won't render. v-show treats undefined as false and keeps the element in the DOM but hides it using CSS display: none.
Step 2: Fix by defining isVisible properly
Initialize isVisible in data or state as a boolean (true or false) to avoid unexpected behavior.
Final Answer:
v-if element won't render; v-show element is in the DOM but hidden; fix by defining isVisible as a boolean. -> Option D
Quick Check:
Undefined treated as false; define boolean to fix [OK]
Hint: Always initialize booleans used in v-if and v-show [OK]
Common Mistakes:
Assuming undefined is true
Not initializing reactive data
Expecting same behavior from v-if and v-show
5. You want to toggle a dropdown menu in Vue that is hidden by default and shown only when a button is clicked. The menu content is complex and heavy to render. Which directive should you use and why?
hard
A. Use both v-if and v-show together for best performance.
B. Use v-show because it toggles visibility quickly without removing from DOM.
C. Use v-if because it avoids rendering heavy content until needed.
D. Use neither; control visibility with CSS classes manually.
Solution
Step 1: Consider rendering cost of heavy content
Heavy content should not be rendered until needed to save resources and improve performance.
Step 2: Choose directive based on toggle frequency and cost
v-if adds/removes elements, so it delays rendering until shown, ideal for heavy content toggled infrequently.
Final Answer:
Use v-if because it avoids rendering heavy content until needed. -> Option C
Quick Check:
Heavy content + infrequent toggle = v-if [OK]
Hint: Heavy content? Use v-if to delay rendering [OK]
Common Mistakes:
Using v-show which renders heavy content always
Combining both directives unnecessarily
Ignoring performance impact of rendering
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.