面试题答案
一键面试onMount
的作用
onMount
是Svelte组件的生命周期函数,在组件首次渲染到DOM后立即调用。它常用于执行需要访问DOM的操作,比如初始化第三方库,或者在组件挂载后设置初始状态。
beforeUpdate
的作用
beforeUpdate
在组件状态发生变化,且DOM即将更新之前被调用。这是一个在更新DOM之前执行一些逻辑的好时机,例如检查状态变化是否合理,或者进行一些数据预处理。
afterUpdate
的作用
afterUpdate
在组件状态发生变化,且DOM已经更新完毕后被调用。它可以用于执行依赖于更新后DOM状态的操作,比如重新计算布局,或者记录更新后的状态。
计数器组件示例
<script>
import { onMount, beforeUpdate, afterUpdate } from 'svelte';
let count = 0;
onMount(() => {
// 组件挂载后初始化计数
count = 1;
});
beforeUpdate(() => {
// 更新前检查计数变化
console.log('Before update, current count:', count);
});
afterUpdate(() => {
// 更新后打印新的计数
console.log('After update, new count:', count);
});
function increment() {
count++;
}
</script>
<button on:click={increment}>Increment</button>
<p>Count: {count}</p>
在上述代码中,onMount
在组件挂载时将count
初始化为1。beforeUpdate
在每次count
变化且DOM更新前打印当前count
值。afterUpdate
在DOM更新后打印新的count
值。每次点击按钮触发increment
函数,count
增加,同时触发beforeUpdate
和afterUpdate
函数执行相应逻辑。