React 自写Loading
import React, {Component} fro'react' import PropTypes from 'prop-types' import Animated from 'animated/lib/targets/react-dom' class Loader extends Component { constructor(props) { super(props); const animate = new Animated.Value(0); animate.addListener(this.changeOpacity.bind(this)); this.state = { animate: animate, value: 0 } } changeOpacity({value}) { if (value === 0) this.setState({value: 0}); } componentDidUpdate(prevProps) { const {active} = this.props; if (!prevProps.active && active) { this.state.animate.setValue(0.58); this.setState({value: 0.58}); } else if (prevProps.active && !active) { Animated.timing(this.state.animate, {toValue: 0}).start(); } } render() { const {text} = this.props; if (this.state.value === 0) return false; return ( <div> <Animated.div className="page-block" style={{opacity: this.state.animate}} /> <div className="loading-text">{text}</div> <div className="loading-wrapper"> <div className="spinner"> <div className="double-bounce1"/> <div className="double-bounce2"/> </div> </div> </div> ) } } Loader.propTypes = { // 加载的文本 text: PropTypes.string.isRequired, // 是否激活状态 active: PropTypes.bool.isRequired }; Loader.defaultProps = { text: 'Loading', active: false }; export default Loader
使用
<Loader active={this.state.status}/>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)