面试题答案
一键面试- 代码逻辑:
- 使用
useState
来管理元素的显示状态(是否淡入或淡出),比如定义一个状态变量isVisible
。 - 当点击按钮时,通过
setIsVisible
改变isVisible
的值,从而控制元素的淡入淡出。 - 使用
useEffect
来根据isVisible
的变化添加或移除相应的CSS类,以实现淡入淡出的动画效果。
- 使用
- 关键代码片段:
import React, { useState, useEffect } from'react';
const FadeComponent = () => {
const [isVisible, setIsVisible] = useState(false);
useEffect(() => {
const element = document.getElementById('fade - element');
if (isVisible) {
element.classList.add('fade - in');
element.classList.remove('fade - out');
} else {
element.classList.add('fade - out');
element.classList.remove('fade - in');
}
}, [isVisible]);
return (
<div>
<button onClick={() => setIsVisible(!isVisible)}>
{isVisible? '隐藏' : '显示'}
</button>
<div id="fade - element" className={`fade - component ${isVisible? 'fade - in' : 'fade - out'}`}>
要淡入淡出的元素
</div>
</div>
);
};
export default FadeComponent;
在CSS中定义fade - in
和fade - out
类来实现淡入淡出效果:
.fade - component {
opacity: 0;
transition: opacity 0.5s ease - in - out;
}
.fade - in {
opacity: 1;
}
.fade - out {
opacity: 0;
}