If blocks let you show or hide parts of your webpage based on conditions. It helps make your page change when things happen.
If blocks ({#if}) in Svelte
{#if condition}
<!-- content to show if true -->
{:else if anotherCondition}
<!-- content if anotherCondition is true -->
{:else}
<!-- content if all conditions are false -->
{/if}loggedIn is true.{#if loggedIn}
<p>Welcome back!</p>
{/if}score.{#if score >= 50}
<p>You passed!</p>
{:else}
<p>Try again.</p>
{/if}{#if status === 'loading'}
<p>Loading...</p>
{:else if status === 'error'}
<p>Error occurred.</p>
{:else}
<p>Data loaded.</p>
{/if}This Svelte component shows a button to log in or out. When clicked, it toggles the loggedIn state. The message below changes based on whether the user is logged in or not.
The button uses aria-pressed for accessibility to indicate its state.
<script> let loggedIn = false; function toggleLogin() { loggedIn = !loggedIn; } </script> <button on:click={toggleLogin} aria-pressed={loggedIn}> {loggedIn ? 'Logout' : 'Login'} </button> {#if loggedIn} <p>Welcome back, user!</p> {:else} <p>Please log in to continue.</p> {/if}
Always close your if blocks with {/if}.
Use aria-pressed or similar attributes on interactive elements for better accessibility.
Test your conditions carefully to avoid showing wrong content.
If blocks let you show or hide content based on conditions.
Use {#if}, {:else if}, and {:else} to handle different cases.
They help make your app interactive and responsive to user actions.
Practice
{#if} block do in Svelte?Solution
Step 1: Understand the purpose of {#if}
The {#if} block is used to check a condition and decide if some content should be shown or hidden.Step 2: Compare with other options
Looping is done with {#each}, styling is done with CSS, and reusable components are separate files or functions.Final Answer:
It conditionally shows or hides content based on a true or false value. -> Option AQuick Check:
Conditional display = C [OK]
- Confusing {#if} with loops like {#each}
- Thinking {#if} styles elements
- Mixing {#if} with component creation
{#if} block in Svelte?Solution
Step 1: Recall Svelte if block syntax
Svelte uses{#if condition} ... {/if}to start and end an if block.Step 2: Check other options for correctness
Options A and C use incorrect syntax from other languages or HTML.{#if condition} ... {#end}uses a wrong closing tag.Final Answer:
{#if condition} ... {/if} -> Option CQuick Check:
Correct Svelte if syntax = B [OK]
- Using HTML <if> tags instead of Svelte syntax
- Forgetting the # in {#if}
- Using wrong closing tags like {#end}
{`\n{#if loggedIn}\n Welcome back!
\n{:else}\n Please log in.
\n{/if}`}Solution
Step 1: Check the value of loggedIn
The variable loggedIn is set to false initially.Step 2: Understand the if-else block behavior
If loggedIn is true, it shows "Welcome back!"; else it shows "Please log in." Since loggedIn is false, the else block runs.Final Answer:
<p>Please log in.</p> -> Option BQuick Check:
loggedIn false shows else block = A [OK]
- Assuming false shows the if block content
- Ignoring the {:else} block
- Thinking no output if condition false
{`\n{#if count > 3}\n Count is high
\n{:else if count > 1}\n Count is medium
\n{:else}\n Count is low
\n{/if}`}Solution
Step 1: Check if {:else if} is valid in Svelte
Svelte supports {:else if} syntax to chain conditions inside {#if} blocks.Step 2: Verify variable declaration and closing tags
Using let for count is correct for reactive variables. The {/if} closing tag is present.Final Answer:
There is no error; the code is correct. -> Option DQuick Check:
Valid else if syntax and proper closure = A [OK]
- Thinking {:else if} is invalid syntax
- Forgetting {/if} closing tag
- Confusing let and const for reactive vars
{#if} block correctly checks both conditions?Solution
Step 1: Understand the condition requirements
The message should show only if both loggedIn and isAdmin are true, so we need a logical AND.Step 2: Evaluate each option's logic
{#if loggedIn | isAdmin}uses | bitwise OR which shows if either is true (wrong).Welcome, admin!
{/if}{#if loggedIn || isAdmin}uses || logical OR which means either can be true (wrong).Welcome, admin!
{/if}{#if loggedIn} {:if isAdmin}uses invalid {:if} syntax.Welcome, admin!
{/if} {/if}{#if loggedIn && isAdmin}uses && logical AND which requires both true (correct).Welcome, admin!
{/if}Final Answer:
{#if loggedIn && isAdmin} <p>Welcome, admin!</p> {/if} -> Option AQuick Check:
Use && for both true conditions [OK]
- Using || instead of && for both conditions
- Using bitwise | instead of logical &&
- Using invalid {:if} syntax
Ready to prove it?
Pass the test and this pattern moves unknown
