Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >React 播客专栏 Vol.5|从“显示”到“消失”:打造你的第一个交互式 Alert 组件!

React 播客专栏 Vol.5|从“显示”到“消失”:打造你的第一个交互式 Alert 组件!

作者头像
前端达人
发布于 2025-05-07 07:14:40
发布于 2025-05-07 07:14:40
9500
代码可运行
举报
文章被收录于专栏:前端达人前端达人
运行总次数:0
代码可运行

👋 欢迎回到《前端达人 · 播客书单》第 5 期(正文内容为学习笔记摘要,音频内容是详细的解读,方便你理解),请点击下方收听

📌 今天我们不再停留在看代码,而是动手实现一个真正的 React 组件:带关闭功能的 Alert 提示框。如果你已经知道什么是 JSX、Props 和 State,那么今天这期内容将帮助你把这些拼图拼到一起!

🔧 第一步:做一个基本的 Alert 组件

还记得 React 的核心逻辑吗?组件就是一个函数,返回 JSX,就能控制 UI 输出。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function Alert() {
  return (
    <div>
      <div>
        <span role="img" aria-label="Warning"></span>
        <span>Oh no!</span>
      </div>
      <div>Something isn't quite right ...</div>
    </div>
  );
}

💡 提示:

  • JSX 里 class 叫 className。
  • 图标加上 role="img"aria-label,提升无障碍支持。
  • 组件名必须大写!不然 React 会把它当成原生 HTML 标签。

🎨 第二步:加点“定制味道” —— 用 Props 做组件参数化

Alert 不应该只显示“⚠ Oh no!” 吧?我们来让它变得灵活:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export function Alert({ type = "information", heading, children }) {
  return (
    <div>
      <div>
        <span role="img" aria-label={type === "warning" ? "Warning" : "Info"}>
          {type === "warning" ? "⚠" : "ℹ️"}
        </span>
        <span>{heading}</span>
      </div>
      <div>{children}</div>
    </div>
  );
}

👀 使用方式变得很灵活:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Alert type="information" heading="Success">
  Everything is really good!
</Alert>

✔️ 小技巧:

  • children 就是你写在组件标签之间的内容;
  • type, heading, children 都是通过 Props 来配置;
  • 解构 + 默认值写法,让代码更优雅。

🖱️ 第三步:响应用户操作 —— 加个“关闭按钮”

用户想关掉 Alert 怎么办?来,我们加个 closable 属性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{closable && (
  <button aria-label="Close">
    <span role="img" aria-label="Close"></span>
  </button>
)}

这样就能控制这个按钮是否显示了!

在使用时只要这样写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Alert type="warning" heading="Oops" closable>
  Something went wrong!
</Alert>

✅ 注意:

  • closable 只要写上就等于 true
  • 条件渲染用 &&,真值就渲染,假值就忽略。

📦 第四步:组件记住“关闭”状态 —— 用 State 控制可见性

让按钮真正“管用”,我们得用上 useState

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { useState } from"react";

exportfunction Alert({ type = "info", heading, children, closable }) {
const [visible, setVisible] = useState(true);

if (!visible) returnnull;

const handleCloseClick = () => setVisible(false);

return (
    <div>
      <div>
        <span>{type === "warning" ? "⚠" : "ℹ️"}</span>
        <span>{heading}</span>
      </div>
      <div>{children}</div>
      {closable && (
        <button onClick={handleCloseClick}></button>
      )}
    </div>
  );
}

🎯 一句话总结:点一下关闭按钮,visible 变成 false,Alert 消失!

📘 第五步:用一用书后小测验题,检验你的理解:

  • React 组件为什么要以大写开头?
  • JSX 中怎么嵌入变量?
  • Props 和 State 的区别是啥?
  • 什么是条件渲染?

如果你都能答出来,那你真的已经掌握了本节核心!

#React #前端播客 #前端达人 #React播客专栏

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端达人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[源码解析] 深度学习分布式训练框架 horovod (19) --- kubeflow MPI-operator
Horovod 是一款基于 AllReduce 的分布式训练框架。凭借其对 TensorFlow、PyTorch 等主流深度学习框架的支持,以及通信优化等特点,Horovod 被广泛应用于数据并行的训练中。
罗西的思考
2021/07/27
2.5K1
tf-operator 的测试
近期组内掌管的资源利用效率不够高,我们正在想办法在混部集群(游戏+离线任务),多跑一些离线任务。平台之前提供过一些大规模机器学习的模块给算法同学使用,效果不错,但是因为交互以及和 K8S 的集成问题,还有就是人力问题,没有做的很好,最近调研了一些 tf-operator,准备底层进行整合,给用户提供更好的机器学习训练的体验。
runzhliu
2020/08/06
1.3K0
[源码解析] 深度学习分布式训练框架 horovod (20) --- Elastic Training Operator
Horovod 是一款基于 AllReduce 的分布式训练框架。凭借其对 TensorFlow、PyTorch 等主流深度学习框架的支持,以及通信优化等特点,Horovod 被广泛应用于数据并行的训练中。
罗西的思考
2021/08/06
6190
云原生 AI 前沿:Kubeflow Training Operator 统一云上 AI 训练
张望,腾讯高级工程师,从事云上 GPU 和分布式训练加速,负责腾讯云 TKE 在 AI 场景的研发和支持工作。 单嘉鑫,字节跳动软件工程师,从事基础架构及开源工作,主要关注在Kubernetes、Serverless、ML 领域。 分布式训练与 Kubeflow 当开发者想要讲深度学习的分布式训练搬上 Kubernetes 集群时,首先想到的往往就是 Kubeflow 社区中形形色色的 operators,如 tf-operator、mpi-operator。 这些服务于各种深度学习训练(Tensor
腾讯云原生
2021/09/09
1.8K2
kubeflow系列(二):kubeflow组件介绍
为了对kubeflow有个更直观深入的了解,对kubeflow的各组件进行简单的介绍,先从机器学习任务来看kubeflow的的实现。
机械视角
2020/02/11
3.7K0
kubeflow系列(二):kubeflow组件介绍
在K8s上弹性深度学习训练利器|Elastic Training Operator
由于云计算在资源成本和弹性扩容方面的天然优势,越来越多客户愿意在云上构建 AI 系统,而以容器、Kubernetes 为代表的云原生技术,已经成为释放云价值的最短路径, 在云上基于 Kubernetes 构建 AI 平台已经成为趋势。
CNCF
2021/03/15
1.5K0
在K8s上弹性深度学习训练利器|Elastic Training Operator
[源码解析] 深度学习分布式训练框架 horovod (21) --- 之如何恢复训练
本文以 PyTorch on Horovod 为切入点,分析一下 Horovod 弹性训练的恢复流程,具体涉及知识点有:
罗西的思考
2021/09/23
9500
GPU 分布式 AI 训练加速引擎 TACO-Training 容器方案首发!
背景 随着 AI 模型规模的越来越大,训练数据的越来越多,用户对模型的迭代效率也要求越来越高,单个 GPU 的算力显然无法满足大部分业务场景,使用单机多卡或多机多卡训练成为趋势。单机多卡训练场景的参数同步借助目前 NVIDIA NVLINK 技术已经得到了很好地解决,而多机多卡场景由于对网络通信的强依赖就没有那么简单。 目前网卡厂商提供的 RoCE 等 RDMA 技术,使得多机通信效率大幅提升,但是如何在25G或 50G VPC 网络环境下提升分布式训练系统的通信效率,仍然是目前公有云厂商亟需解决的
腾讯云计算产品团队
2021/11/26
1.5K0
揭秘|一探腾讯基于Kubeflow建立的多租户训练平台背后的技术架构
作者薛磊,腾讯高级软件工程师,服务于腾讯星辰算力平台,是Kubeflow的maintainer以及Volcano、 Kubernetes等其他开源项目的贡献者,致力于通过开源项目以及云原生架构改进AI基础架构,提升算法工程师以及整体AI研发的工程效率。
腾讯云原生
2020/08/17
2.9K0
[源码解析] 深度学习分布式训练框架 horovod (3) --- Horovodrun背后做了什么
Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。
罗西的思考
2021/06/17
3.7K0
[源码解析] 深度学习分布式训练框架 horovod (3) --- Horovodrun背后做了什么
GPU 分布式 AI 训练加速引擎 TACO-Training 容器方案首发!
冯克环,腾讯云异构计算研发工程师,专注于云上 AI 训练加速相关技术,对 GPU 虚拟化、GPU 训练加速有深厚的积累,目前负责腾讯云 AI 训练加速相关技术的研发以及性能优化工作。 张锐,腾讯云网络虚拟化研发工程师,在之前的工作中专注于 AI 训练网络优化方面的工作,在 RDMA、GPU 通信优化等方面有较多经验,目前专注于做云上AI训练通信优化方面的工作。 背景 随着 AI 模型规模的越来越大,训练数据的越来越多,用户对模型的迭代效率也要求越来越高,单个 GPU 的算力显然无法满足大部分业务场景,使
腾讯云原生
2021/11/26
1.3K0
聊一聊深度学习分布式训练
在深度学习时代,训练数据特别大的时候想要单卡完成训练基本是不可能的。所以就需要进行分布式深度学习。在此总结下个人近期的研究成果,欢迎大佬指正。
NewBeeNLP
2022/06/06
3.4K2
聊一聊深度学习分布式训练
[源码解析] 深度学习分布式训练框架 horovod (7) --- DistributedOptimizer
Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。
罗西的思考
2021/06/29
1.6K0
[源码解析] 深度学习分布式训练框架 horovod (17) --- 弹性训练之容错
Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。
罗西的思考
2021/07/23
1.2K0
XGBoost Operator源码分析
分布式的 XGBoost 可以用 Spark 来跑,当然也支持用其他分布式的方法去跑,比如用 XGBoost Operator,可以很轻松的实现 XGBoost 算法的分布式执行。
runzhliu
2020/08/05
6490
[源码解析] 深度学习分布式训练框架 horovod (8) --- on spark
Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。
罗西的思考
2021/07/01
2.2K0
分布式训练框架Horovod初步学习
Horovod 是 TensorFlow、Keras、PyTorch 和 Apache MXNet 的分布式深度学习训练框架。Horovod 的目标是使分布式深度学习快速且易于使用。
BBuf
2020/11/09
3.3K0
[源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知
Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。
罗西的思考
2021/07/20
1.1K0
[源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知
云原生的弹性 AI 训练系列之一:基于 AllReduce 的弹性分布式训练实践
高策,腾讯高级工程师,Kubeflow 社区训练和自动机器学习工作组 Tech Lead,负责腾讯云 TKE 在 AI 场景的研发和支持工作。 张望,腾讯高级工程师,从事 GPU 虚拟化和分布式训练加速,负责腾讯云 TKE 在 AI 场景的研发和支持工作。 引言 随着模型规模和数据量的不断增大,分布式训练已经成为了工业界主流的 AI 模型训练方式。基于 Kubernetes 的 Kubeflow 项目,能够很好地承载分布式训练的工作负载,业已成为了云原生 AI 领域的事实标准,在诸多企业内广泛落地。 尽管
腾讯云原生
2021/03/15
1.7K0
[源码解析] 深度学习分布式训练框架 horovod (12) --- 弹性训练总体架构
Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。
罗西的思考
2021/07/14
1K0
[源码解析] 深度学习分布式训练框架 horovod (12) --- 弹性训练总体架构
推荐阅读
相关推荐
[源码解析] 深度学习分布式训练框架 horovod (19) --- kubeflow MPI-operator
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验