面试题答案
一键面试-
创建状态变量:
- 在Svelte组件中,使用
let
关键字来声明状态变量。例如:
<script> let userData; let isLoading = false; let error; const fetchUserData = async () => { isLoading = true; try { const response = await fetch('your - api - url'); if (!response.ok) { throw new Error('Network response was not ok'); } userData = await response.json(); error = null; } catch (e) { error = e; } finally { isLoading = false; } }; // 页面加载时调用 fetchUserData(); </script>
userData
用于存储成功获取的用户数据,初始值为null
。isLoading
用于表示数据加载状态,初始值为false
,开始获取数据时设为true
,获取完成(无论成功或失败)设为false
。error
用于存储获取数据过程中发生的错误,初始值为null
。
- 在Svelte组件中,使用
-
在不同状态下更新视图:
- 加载中状态:
{#if isLoading} <p>Loading user data...</p> {:else if error} <p>Error: {error.message}</p> {:else if userData} <pre>{JSON.stringify(userData, null, 2)}</pre> {/if}
- 当
isLoading
为true
时,显示“Loading user data...”,表示数据正在加载。
- 当
- 获取数据失败状态:
- 当
error
不为null
时,说明获取数据失败,显示错误信息{error.message}
。
- 当
- 成功获取数据状态:
- 当
userData
不为null
且isLoading
为false
、error
为null
时,显示用户数据。这里使用<pre>
标签格式化显示JSON数据,实际应用中可以根据数据结构进行更友好的展示,比如使用列表、表格等组件展示用户信息。
- 当
- 加载中状态: