面试题答案
一键面试实现思路
- 使用React的生命周期方法
componentDidMount
,在组件挂载后触发动画。 - 利用CSS的
transition
属性来实现淡入效果,通过修改透明度opacity
值来控制。 - 在组件的状态中定义一个表示透明度的变量,通过改变这个变量的值来触发CSS过渡动画。
关键代码片段
import React, { Component } from 'react';
import './styles.css'; // 假设样式写在这个文件
class FadeInComponent extends Component {
constructor(props) {
super(props);
this.state = {
opacity: 0
};
}
componentDidMount() {
this.setState({ opacity: 1 });
}
render() {
return (
<div className="fade-in" style={{ opacity: this.state.opacity }}>
{/* 组件内容 */}
<p>这是一个淡入效果的组件</p>
</div>
);
}
}
export default FadeInComponent;
在styles.css
中:
.fade-in {
transition: opacity 1s ease;
}
上述代码中,componentDidMount
生命周期钩子在组件挂载后立即执行,将opacity
状态设置为1,从而触发CSS的transition
动画,实现淡入效果。transition
属性定义了动画的时长和过渡效果。