面试题答案
一键面试writable store的作用
writable store
用于创建一个可写的状态存储。它允许我们在应用程序的不同部分轻松地读写状态值,是Svelte中最基础的状态管理工具。通过writable
创建的存储对象有subscribe
方法用于订阅状态变化,set
方法用于直接设置新值,update
方法用于基于当前值更新状态。
derived store的作用
derived store
用于基于一个或多个现有的store创建一个新的store,新store的值会随着依赖的store值的变化而自动更新。它适用于需要根据其他状态衍生出计算值的场景,避免了手动监听依赖状态变化并进行计算的繁琐操作。
结合示例
<script>
import { writable, derived } from 'svelte/store';
// 创建一个writable store用于计数
const count = writable(0);
// 创建一个derived store用于判断计数是否为偶数
const isEven = derived(count, $count => $count % 2 === 0);
</script>
<button on:click={() => count.update(n => n + 1)}>Increment</button>
<p>Count: {$count}</p>
<p>Is even: {$isEven}</p>
在上述代码中:
count
是一个writable store
,通过count.update(n => n + 1)
可以实现计数增加。isEven
是一个derived store
,依赖于count
。每当count
的值发生变化时,isEven
会自动重新计算其值,即判断count
的值是否为偶数。- 在模板中,
{$count}
和{$isEven}
用于显示当前count
的值和isEven
的衍生值。