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

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

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


文章目录


前言

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

特点

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

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


一、创建新的 React 应用

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

bash 复制代码
npx create-react-app my-modal-app
cd my-modal-app

二、 创建模态对话框组件

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

javascript 复制代码
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 的内容,以加入模态对话框的功能。

javascript 复制代码
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
css 复制代码
.App {
    text-align: center;
    padding: 20px;
}

button {
    padding: 10px 20px;
    font-size: 16px;
}
  1. src/Modal.css
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 为网页添加动态交互和功能。
    这三者相辅相成,共同构建出丰富多彩的网页体验。
相关推荐
景天科技苑几秒前
【Vue axios】vue中如何通过axios异步请求后端接口
前端·javascript·vue.js·axios·异步请求
MC何失眠1 分钟前
vulnhub靶场之momentum-2
网络·python·学习·网络安全
荔家大少3 分钟前
10个极具SEO价值的标题案例分析-华媒舍
大数据·服务器·前端·javascript·搜索引擎·新媒体运营·媒体
即将头秃的程序媛15 分钟前
vue 项目实现阻止浏览器记住密码
前端·javascript·vue.js
Williamoses16 分钟前
elementui table滚动分页加载
前端·vue.js·elementui
时光匆匆岁月荏苒,转眼我们已不是当年17 分钟前
【VUE小型网站开发】优化通用配置 二
前端·javascript·vue.js
Serenity_Qin18 分钟前
vue3 + ts 使用 el-tree
前端·vue.js·typescript·vue3·element-plus
fury_1231 小时前
当大的div中有六个小的div,上面三个下面三个,当外层div高变大的时候我希望里面的小的div的高也变大
前端·javascript·html
大鸡腿最好吃1 小时前
为啥react要用jsx
前端·javascript·react.js
小黄编程快乐屋1 小时前
前端小练习——大雪纷飞(JS没有上限!!!)
开发语言·前端·javascript