面试题答案
一键面试关键设计思路
- 分离关注点:将计数器的逻辑和UI分离。使用Svelte的store来管理计数器的状态,组件负责展示和与用户交互。
- 模块化:为每种计数模式创建单独的函数,这样可以提高代码的可维护性和可复用性。
- 性能优化:减少不必要的重新渲染。Svelte的响应式系统会自动跟踪依赖,只有相关数据变化时才会触发组件更新。
代码片段示例
- 创建writable store
<script>
import { writable } from'svelte/store';
// 创建计数器的writable store
const counter = writable(0);
</script>
- 定义计数模式函数
<script>
const increment = () => {
counter.update(n => n + 1);
};
const decrement = () => {
counter.update(n => n - 1);
};
const double = () => {
counter.update(n => n * 2);
};
const halve = () => {
counter.update(n => n / 2);
};
const reset = () => {
counter.set(0);
};
</script>
- 组件部分
<script>
import { counter, increment, decrement, double, halve, reset } from './counterLogic.js';
</script>
<button on:click={increment}>Increment</button>
<button on:click={decrement}>Decrement</button>
<button on:click={double}>Double</button>
<button on:click={halve}>Halve</button>
<button on:click={reset}>Reset</button>
{#if $counter}
<p>The counter value is: {$counter}</p>
{/if}
在上述代码中,counterLogic.js
文件可以用于存放计数器的逻辑函数和writable store
的定义,使得组件文件更加简洁,关注点分离。组件通过导入相关函数和store来实现计数器的各种功能。