Web开发基础学习——通过React示例学习模态对话框

Web开发基础学习系列文章目录

第一章 基础知识学习之通过React组件学习模态对话框


文章目录

  • Web开发基础学习系列文章目录
  • 前言
  • 一、创建新的 React 应用
  • 二、 创建模态对话框组件
  • 三、修改 App.js
  • 四、 添加样式
  • 五、启动应用
  • 六、访问应用
  • 总结


前言

模态对话框(Modal Dialog)是一种用户界面元素,它在当前窗口上显示一个对话框,要求用户与之交互后才能返回到主界面。模态对话框通常用于获取用户输入、显示重要信息或确认用户操作。它会阻止用户与主界面进行交互,直到对话框被关闭。

特点

  • 阻止交互:在模态对话框打开时,用户无法与主界面的其他部分进行交互。
  • 集中注意力:模态对话框通常用于需要用户集中注意力的操作,如表单填写、确认删除等。
  • 覆盖主界面:模态对话框通常会覆盖主界面的部分或全部内容,通常带有半透明的背景遮罩。

下面是一个简单的 React 示例,展示如何创建和使用模态对话框(Modal)。这个示例包括一个按钮来打开模态对话框,并且可以关闭它。


一、创建新的 React 应用

首先,确保你已经安装了 Node.js 和 npm(Node 包管理器)。然后,可以使用 Create React App 来初始化一个新的项目。

npx create-react-app my-modal-app
cd my-modal-app

二、 创建模态对话框组件

在 src 文件夹中创建一个新的文件 Modal.js,并添加模态对话框的代码。

import React from 'react';
import './Modal.css';function Modal({ onClose }) {return (<div className="modal-overlay"><div className="modal"><h2>这是一个模态对话框</h2><p>你可以在这里添加任何内容。</p><button onClick={onClose}>关闭</button></div></div>);
}export default Modal;

三、修改 App.js

用以下代码替换 src/App.js 的内容,以加入模态对话框的功能。

import React, { useState } from 'react';
import Modal from './Modal';
import './App.css';function App() {const [isModalOpen, setModalOpen] = useState(false);const openModal = () => {setModalOpen(true);};const closeModal = () => {setModalOpen(false);};return (<div className="App"><h1>模态对话框示例</h1><button onClick={openModal}>打开模态对话框</button>{isModalOpen && <Modal onClose={closeModal} />}</div>);
}export default App;

四、 添加样式

创建两个样式文件,分别为 App.css 和 Modal.css。

  1. src/App.css
.App {text-align: center;padding: 20px;
}button {padding: 10px 20px;font-size: 16px;
}
  1. src/Modal.css
.modal-overlay {position: fixed;top: 0;left: 0;right: 0;bottom: 0;background: rgba(0, 0, 0, 0.5);display: flex;justify-content: center;align-items: center;
}.modal {background: white;padding: 20px;border-radius: 5px;box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

五、启动应用

确保你在项目目录下,然后运行以下命令启动应用:
npm start

六、访问应用

打开浏览器并访问 http://localhost:3000,你应该能看到一个页面,包含一个按钮,点击该按钮会打开模态对话框。
模态对话框


总结

  • HTML 提供网页的结构和内容。
  • CSS 控制网页的外观和样式。
  • JavaScript 为网页添加动态交互和功能。
    这三者相辅相成,共同构建出丰富多彩的网页体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/481556.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity XR Interaction Toolkit 开发教程:抓取交互【3.0以上版本】

获取完整课程以及答疑&#xff0c;工程文件下载&#xff1a; https://www.spatialxr.tech/ Unity XR Interaction Toolkit 系统化开发教程&#xff1a;https://www.spatialxr.tech/course/5 视频说明链接&#xff1a;抓取交互课程介绍【全球最新 Unity VR 系统化入门开发教程…

科技为翼 助残向新 高德地图无障碍导航规划突破1.5亿次

今年12月03日是第33个国际残疾人日。在当下科技发展日新月异的时代&#xff0c;如何让残障人士共享科技红利、平等地参与社会生活&#xff0c;成为当前社会关注的热点。 中国有超过8500万残障人士&#xff0c;其中超过2400万为肢残人群&#xff0c;视力障碍残疾人数超过1700万…

OGRE 3D----4. OGRE和QML共享opengl上下文

在现代图形应用开发中,OGRE(Object-Oriented Graphics Rendering Engine)和QML(Qt Modeling Language)都是非常流行的工具。OGRE提供了强大的3D渲染能力,而QML则用于构建灵活的用户界面。在某些应用场景中,我们需要在同一个应用程序中同时使用OGRE和QML,并且共享OpenGL…

YOLOv9改进,YOLOv9引入TransNeXt中的ConvolutionalGLU模块,CVPR2024,二次创新RepNCSPELAN4结构

摘要 由于残差连接中的深度退化效应,许多依赖堆叠层进行信息交换的高效视觉Transformer模型往往无法形成足够的信息混合,导致视觉感知不自然。为了解决这个问题,作者提出了一种聚合注意力(Aggregated Attention),这是一种基于仿生设计的token混合器,模拟了生物的中央凹…

坐标系变换

1 Clark变换 三相对称电压表达式为&#xff1a; 将三相电压用相量的形式表达出来&#xff0c;并用欧拉公式&#xff08;eix(cosxisinx)&#xff09;写成三角函数的形式&#xff1a; 同时&#xff0c;三相电压矢量空间合成向量可表示为&#xff1a; 三相电压合成矢量幅值为相电…

Java 上机实践10(常用实用类)

&#xff08;大家好&#xff0c;今天分享的是Java的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 Plug&#xff1a;程序实现方法一&#xff08;记事本&#xff09; 方法二&#xff08;IDEA&#xff09; 实验一&…

【JavaEE初阶 — 网络编程】Socket 套接字 & UDP数据报套接字编程

1. Socket套接字 1.1 概念 Socket 套接字&#xff0c;是由系统提供用于网络通信的技术&#xff0c;是基于TCP / IP协议的网络通信的基本操作单元。基于 Socket 套接字的网络程序开发就是网络编程。 1.2 分类 Socket套接字主要针对传输层协议划分为如下三类&#x…

MacOS 如何连接 Linux NFS 服务器

以 Ubuntu 为例。 Ubuntu 服务器端设置 1. 进入 root 权限&#xff0c;安装 NFS 服务&#xff1a; apt-get update apt-get install nfs-kernel-server2. 创建共享目录&#xff1a; mkdir /data chown nobody:nogroup /data chmod 777 /data3. 配置 /etc/exports 文件: vi …

23种设计模式-原型(Prototype)设计模式

文章目录 一.什么是原型设计模式&#xff1f;二.原型模式的特点三.原型模式的结构四.原型模式的优缺点五.原型模式的 C 实现六.原型模式的 Java 实现七. 代码解析八.总结 类图&#xff1a; 原型设计模式类图 一.什么是原型设计模式&#xff1f; 原型模式&#xff08;Prototype…

Docker Buildx 与 CNB 多平台构建实践

一、Docker Buildx 功能介绍 docker buildx 是 Docker 提供的一个增强版构建工具&#xff0c;支持更强大的构建功能&#xff0c;特别是在构建多平台镜像和高效处理复杂 Docker 镜像方面。 1.1 主要功能 多平台构建支持 使用 docker buildx&#xff0c;可以在单台设备上构建…

C# 数据类型详解:掌握数据类型及操作为高效编码奠定基础

本文将带你深入了解C#中各种数据类型的特点、用途和最佳实践&#xff0c;让你不仅能熟练运用基本类型&#xff0c;还能掌握如何在实际项目中做出最合适的选择。 目录 C#基本语法 C#数据类型 C#类型转换 C#变量常量 C#基本语法 在学习C#之前我们要先知道C#的基础构建是由哪些…

新型大语言模型的预训练与后训练范式,谷歌的Gemma 2语言模型

前言&#xff1a;大型语言模型&#xff08;LLMs&#xff09;的发展历程可以说是非常长&#xff0c;从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初&#xff0c;LLM的训练过程只关注预训练&#xff0c;但后来逐步扩展到了包括预训练和后训练在内的完整…

Istio笔记01--快速体验Istio

Istio笔记01--快速体验Istio 介绍部署与测试部署k8s安装istio测试istio 注意事项说明 介绍 Istio是当前最热门的服务网格产品&#xff0c;已经被广泛应用于各个云厂商和IT互联网公司。企业可以基于Istio轻松构建服务网格&#xff0c;在接入过程中应用代码无需更改&#xff0c;…

uniapp运行时,同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示。

遇到自定义基座调试时安装无效或无反应&#xff1f;本文教你用 ADB 工具快速解决&#xff1a;打开 USB 调试&#xff0c;连接设备&#xff0c;找到应用包名&#xff0c;一键卸载问题包&#xff0c;清理干净后重新运行调试基座&#xff0c;轻松搞定&#xff01; 问题场景&#…

CAD 文件 批量转为PDF或批量打印

CAD 文件 批量转为PDF或批量打印&#xff0c;还是比较稳定的 1.需要本地安装CAD软件 2.通过 Everything 搜索工具搜索&#xff0c;DWG To PDF.pc3 &#xff0c;获取到文件目录 &#xff0c;替换到代码中&#xff0c; originalValue ACADPref.PrinterConfigPath \ r"C:…

蓝桥杯每日真题 - 第23天

题目&#xff1a;&#xff08;直线&#xff09; 题目描述&#xff08;12届 C&C B组C题&#xff09; 解题思路&#xff1a; 题目理解: 在平面直角坐标系中&#xff0c;从给定的点集中确定唯一的直线。 两点确定一条直线&#xff0c;判断两条直线是否相同&#xff0c;可通过…

centos8:Could not resolve host: mirrorlist.centos.org

【1】错误消息&#xff1a; [rootcentos211 redis-7.0.15]# yum update CentOS Stream 8 - AppStream …

Android笔记(三十四):封装带省略号图标结尾的TextView

背景 项目需求需要实现在文本末尾显示一个icon&#xff0c;如果文本很长时则在省略号后面显示icon&#xff0c;使用TextView自带的drawableEnd可以实现&#xff0c;但是如果文本换行了则会显示在TextView垂直居中的位置&#xff0c;不满足要求&#xff0c;于是有了本篇的自定义…

CEF127 编译指南 Linux篇 - 安装Git和Python(三)

1. 引言 在前面的文章中&#xff0c;我们已经完成了基础开发工具的安装和配置。接下来&#xff0c;我们需要安装两个同样重要的工具&#xff1a;Git 和 Python。这两个工具在 CEF 的编译过程中扮演着关键角色。Git 负责管理和获取源代码&#xff0c;而 Python 则用于运行各种编…

centos系统设置本地yum源教程

在CentOS系统中,将ISO文件设置为本地源可以加快软件安装速度,特别是在没有网络连接的环境下。以下是详细步骤: 1. 下载和准备ISO镜像文件 首先,从CentOS的官方网站下载适合需求的CentOS ISO镜像文件。可以选择不同的版本,如CentOS 7或CentOS 8,以及适合你硬件架构的版本…