返回
Node + React 实战:从零实现记账本(十三)——新增账单弹窗封装
前端
2023-10-10 15:13:40
前言
回顾一下上一章的内容。我们已经实现了无限滚动列表、弹窗组件的内部控制显隐、工具方法以及常量的提取。若是你开发项目时,在潜意识里,有对这些内容进行封装的思想,那么你已经有模块化、组件化的开发理念了。
新增账单弹窗封装
在这一章中,我们将对新增账单弹窗组件进行封装,使其成为一个可重用的组件。这将使我们能够在应用程序的其他地方轻松地使用该组件,而无需重复编写代码。
首先,我们需要创建一个新的文件,将其命名为AddBillModal.js
。然后,我们将把新增账单弹窗组件的代码从App.js
文件中复制到AddBillModal.js
文件中。
import React, { useState } from "react";
import { Modal, Button, Form } from "react-bootstrap";
const AddBillModal = (props) => {
const [show, setShow] = useState(false);
const handleClose = () => setShow(false);
const handleShow = () => setShow(true);
return (
<>
<Button variant="primary" onClick={handleShow}>
新增账单
</Button>
<Modal show={show} onHide={handleClose}>
<Modal.Header closeButton>
<Modal.Title>新增账单</Modal.Title>
</Modal.Header>
<Modal.Body>
<Form>
<Form.Group controlId="formBasicEmail">
<Form.Label>账单名称</Form.Label>
<Form.Control type="text" placeholder="请输入账单名称" />
</Form.Group>
<Form.Group controlId="formBasicPassword">
<Form.Label>账单金额</Form.Label>
<Form.Control type="number" placeholder="请输入账单金额" />
</Form.Group>
<Form.Group controlId="formBasicCheckbox">
<Form.Check type="checkbox" label="是否已支付" />
</Form.Group>
</Form>
</Modal.Body>
<Modal.Footer>
<Button variant="secondary" onClick={handleClose}>
关闭
</Button>
<Button variant="primary" onClick={handleClose}>
保存
</Button>
</Modal.Footer>
</Modal>
</>
);
};
export default AddBillModal;
接下来,我们需要在App.js
文件中导入AddBillModal
组件。
import AddBillModal from "./components/AddBillModal";
最后,我们需要在App.js
文件中使用AddBillModal
组件。
const App = () => {
return (
<div className="container">
<AddBillModal />
{/* 其他组件 */}
</div>
);
};
现在,我们已经将新增账单弹窗组件封装成一个可重用的组件。我们可以很容易地将该组件用于应用程序的其他地方,而无需重复编写代码。
结语
在本文中,我们学习了如何对新增账单弹窗组件进行封装,使其成为一个可重用的组件。这使我们能够在应用程序的其他地方轻松地使用该组件,而无需重复编写代码。这有助于提高代码的可维护性和可扩展性。