面试题答案
一键面试1. Writable store状态管理实现原理
- 核心概念:Svelte的
writable
store是一种可写存储,它提供了一种简单的方式来管理应用程序的状态。它基于发布 - 订阅模式。 - 内部机制:
writable
函数创建一个包含subscribe
、set
和update
方法的对象。subscribe
方法用于订阅状态变化,当状态更新时,所有订阅者会收到通知。set
方法用于直接设置新的状态值,update
方法则接受一个函数,该函数以当前状态为参数并返回新的状态值,从而实现状态的更新。
2. 在计数器应用中利用writable store跟踪和更新计数状态
- 创建writable store:
这里使用<script> import { writable } from'svelte/store'; const count = writable(0); </script>
writable
创建了一个初始值为0的count
存储,用于跟踪计数状态。 - 订阅状态:
通过<script> import { writable } from'svelte/store'; const count = writable(0); let unsubscribe; count.subscribe((value) => { console.log('The count is:', value); }); </script>
subscribe
方法,每当count
的值发生变化时,回调函数会被执行,这里简单地将新的计数值打印到控制台。 - 更新状态:
- 使用
set
方法:
点击按钮时,<script> import { writable } from'svelte/store'; const count = writable(0); function incrementToTen() { count.set(10); } </script> <button on:click={incrementToTen}>Set count to 10</button>
set
方法将count
的值直接设置为10。- 使用
update
方法:
点击按钮时,<script> import { writable } from'svelte/store'; const count = writable(0); function increment() { count.update((n) => n + 1); } </script> <button on:click={increment}>Increment</button>
update
方法接受一个回调函数,该函数以当前的count
值(n
)为参数,返回n + 1
,从而实现计数的增加。 - 使用