nodejs 014: React.FC 与 Evergreen(常青树) React UI 框架的的Dialog组件

React.FC

  • React.FC是React中用于定义函数组件“Function Component”的类型。它代表,可以帮助你在TypeScript中提供类型检查和自动补全。使用React.FC时,可以明确指定组件的props类型,并且它会自动推导children属性。下面是一个使用 React.FC 定义函数组件的示例:
import React from 'react';interface MyComponentProps {title: string;count: number;
}// 用React.FC声明一个函数组件
const MyComponent: React.FC<MyComponentProps> = ({ title, count, children }) => {return (<div><h1>{title}</h1><p>Count: {count}</p>{children}</div>);
};// 使用示例
const App: React.FC = () => {return (<MyComponent title="Hello World" count={5}><p>This is a child element!</p></MyComponent>);
};export default App;
  • 使用效果:
    在这里插入图片描述

Evergreen(常青树) 的Dialog组件声明

  • Evergreen代码中export declare const Dialog: React.FC<DialogProps> 定义了一个 React 函数组件 Dialog,该组件使用 DialogProps 接口定义的属性。这使得开发者在使用该组件时,可以根据需要传入相应的属性,以实现不同的功能和样式。

在这里插入图片描述

// 这段代码定义了一个 TypeScript 接口 `DialogProps`,它描述了一个对话框(Dialog)组件的所有可配置属性。
export interface DialogProps {// children: 可以是字符串、React 节点或一个接受 `{ close }` 参数的函数。若为字符串,则用 `<Paragraph />` 包裹children?: React.ReactNode | (({ close }: { close: () => void }) => void)// The intent of the Dialog. Used for the button. Defaults to none.intent?: IntentTypes// 一个布尔值,指示对话框是否显示。默认为 `false`isShown?: boolean// 对话框的标题 Title of the Dialog. Titles should use Title Case.title?: React.ReactNode// When true, the header with the title and close icon button is shown.Defaults to true.hasHeader?: boolean// 自定义的头部内容,可以是 React 节点或接受 `{ close }` 参数的函数。header?: React.ReactNode | (({ close }: { close: () => void }) => void)// When true, the footer with the cancel and confirm button is shown.Defaults to truehasFooter?: boolean// You can override the default footer with your own custom component.footer?: React.ReactNode | (({ close }: { close: () => void }) => void)// When true, the cancel button is shown. Defaults to true.hasCancel?: boolean// When true, the close button is shown. Defaults to true.hasClose?: boolean// 当退出过渡完成时调用的函数。onCloseComplete?: () => void// **onOpenComplete**: 当进入过渡完成时调用的函数。onOpenComplete?: () => void// **onConfirm**: 当确认按钮被点击时调用的函数,传入一个 `close` 函数,默认行为是关闭对话框。onConfirm?: (close: () => void) => void// **confirmLabel**: 确认按钮的标签,默认为“Confirm”。confirmLabel?: string// When true, the confirm button is set to loading. Defaults to false.isConfirmLoading?: boolean// When true, the confirm button is set to disabled. Defaults to false.isConfirmDisabled?: boolean// Function that will be called when the cancel button is clicked.This closes the Dialog by default./onCancel?: (close: () => void) => void// **cancelLabel**: 取消按钮的标签,默认为“Cancel”。cancelLabel?: string// Boolean indicating if clicking the overlay should close the overlay.Defaults to true.shouldCloseOnOverlayClick?: boolean// Boolean indicating if pressing the esc key should close the overlay.Defaults to true.shouldCloseOnEscapePress?: boolean// Width of the Dialog.width?: string | number// The space above the dialog. topOffset?: string | number// The space on the left/right sides of the dialog when there isn't enough horizontal space available on screen.sideOffset?: string | number// The min height of the body content.Makes it less weird when only showing little content.minHeightContent?: string | number// Props that are passed to the dialog container.containerProps?: React.ComponentProps<typeof Pane>// Props that are passed to the content container.contentContainerProps?: React.ComponentProps<typeof Pane>// Whether or not to prevent scrolling in the outer body. Defaults to false.preventBodyScrolling?: boolean
}export declare const Dialog: React.FC<DialogProps>

Dialog组件示例代码

  • https://evergreen.segment.com/components/dialog

在这里插入图片描述

import React from "react";
import ReactDOM from "react-dom";
import { Pane, Dialog, Button } from "evergreen-ui";function DefaultDialogExample() {//使用数组解构赋值来定义一个状态变量和更新函数const [isShown, setIsShown] = React.useState(false);return (<Pane><DialogisShown={isShown}title="Dialog title"onCloseComplete={() => {setIsShown(false);}}confirmLabel="Custom Label">Dialog content</Dialog><ButtononClick={() => {setIsShown(true);}}>Show Dialog</Button></Pane>);
}ReactDOM.render(<DefaultDialogExample />, document.getElementById("root"));

CG

  • UI-Box是一个基于React的低级别组件库。Evergreen(常青树) 的Button等组件通过BoxComponent实现,代码需要 import { extractStyles as boxExtractStyles, BoxProps, BoxComponent, PolymorphicBoxProps } from 'ui-box'

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

二、MySQL环境搭建

文章目录 1. MySQL的卸载步骤1&#xff1a;停止MySQL服务步骤2&#xff1a;软件的卸载步骤3&#xff1a;残余文件的清理步骤4&#xff1a;清理注册表&#xff08;选做&#xff09;步骤5&#xff1a;删除环境变量配置 2. MySQL的下载、安装、配置2.1 MySQL的4大版本2.2 软件的下…

Ubuntu以及ROS的一些方便设置及使用

目录 增加环境变量 取消终端sudo密码 关闭开机密码 编写sh文件 虚拟环境的启用与关闭 launch文件小技巧 增加环境变量 1.在home目录下按ctrlh打开隐藏文件&#xff0c;打开.bashrc直接修改即可 2.输入gedit/vim ~/.bashrc修改即可 对于source ~/.bashrc这条指令只是适用…

从零开始讲DDR(5)——读懂Datasheet

对于开发人员来说&#xff0c;需要根据实际场景和使用的需要&#xff0c;使用不同厂家&#xff0c;不同型号的DDR&#xff0c;虽然原理上大同小异&#xff0c;但是还是有一些细节上的需要注意的地方&#xff0c;接触一个新的DDR芯片&#xff0c;首先就是需要找到对应的datashee…

软考高级:系统安全分析与设计- 加密管理:PKI 和 KMI 区别

讲解 PKI&#xff08;公钥基础设施&#xff09;和 KMI&#xff08;密钥管理基础设施&#xff09;都是与加密和密钥管理相关的重要概念&#xff0c;但它们有不同的侧重点。接下来&#xff0c;我将通过一个生活化的例子和概念讲解&#xff0c;帮助你理解它们的区别。 生活化例子…

【redis-02】深入理解redis中RBD和AOF的持久化

redis系列整体栏目 内容链接地址【一】redis基本数据类型和使用场景https://zhenghuisheng.blog.csdn.net/article/details/142406325【二】redis的持久化机制和原理https://zhenghuisheng.blog.csdn.net/article/details/142441756 如需转载&#xff0c;请输入&#xff1a;htt…

[Java EE] 网络原理 ---- UDP协议 序列化 / 反序列化 长短连接

Author&#xff1a;MTingle major:人工智能 Build your hopes like a tower! 文章目录 文章目录 一. UDP 协议 1.UDP协议的特点 2. UDP 的结构 3. md5算法 二. 长短连接 协程 IO多路复用 序列化和反序列化 1.长短连接 2. 协程 3. IO 多路复用 4.序列化 / 反序列化 一…

队列+宽搜专题篇

目录 N叉树的层序遍历 二叉树的锯齿形层序遍历 二叉树最大宽度 在每个树行中找最大值 N叉树的层序遍历 题目 思路 使用队列层序遍历来解决这道题&#xff0c;首先判断根节点是否为空&#xff0c;为空则返回空的二维数组&#xff1b;否则&#xff0c;就进行层序遍历&#x…

论文阅读 | 可证安全隐写(网络空间安全科学学报 2023)

可证安全隐写&#xff1a;理论、应用与展望 一、什么是可证安全隐写&#xff1f; 对于经验安全的隐写算法&#xff0c;即使其算法设计得相当周密&#xff0c;隐写分析者&#xff08;攻击者&#xff09;在观察了足够数量的载密&#xff08;含有隐写信息的数据&#xff09;和载体…

6.数据库-数据库设计

6.数据库-数据库设计 文章目录 6.数据库-数据库设计一、设计数据库的步骤二、绘制E-R图三、关系模式第一范式 (1st NF)第二范式 (2nd NF)第三范式 (3nd NF)规范化和性能的关系 一、设计数据库的步骤 收集信息 与该系统有关人员进行交流、座谈&#xff0c;充分了解用户需求&am…

Vulkan 学习(9)---- vkSuraceKHR 创建

目录 OverView创建窗口表面参考代码 OverView Vulkan 是一个平台无关的图形API&#xff0c;这意味着它不能直接与特定的窗口系统(Windows&#xff0c;linux 和 macOS 的窗口系统)进行交互 为了解决这个问题&#xff0c;Vulkan 引入了窗口系统集成(Window System Intergration …

DOM【JavaScript】

在JavaScript中&#xff0c;DOM (Document Object Model&#xff1a;文档对象模型) 是web页面的编程接口&#xff0c;用于表示和操作 HTML 和 XML 文档。它将文档结构化为一个树形结构&#xff0c;允许开发者通过 JavaScript 访问和修改网页的内容、结构和样式。以下是一些关于…

基于单片机的智能校园照明系统

由于校园用电量较大&#xff0c;本设计可以根据实际环境情况的改变&#xff0c;实现实时照明的控制。本设计以单片机芯片为控制芯片&#xff0c;热释电传感器采集教室中学生出入的信息&#xff0c;并把信息传递给单片机芯片&#xff0c;单片机芯片根据传感器传递过来的信息来控…

【软件测试】Bug 篇

哈喽&#xff0c;哈喽&#xff0c;大家好~ 我是你们的老朋友&#xff1a;保护小周ღ 今天给大家带来的是 【软件测试】Bug 篇&#xff0c;首先了解, 什么是Bug, 如何定义一个Bug, 如何描述一个 Bug, Bug的级别, 和 Bug 的生命周期, 以及测试人员跟开发人员产生争执如何处理,…

【MYSQL】聚合查询、分组查询、联合查询

目录 聚合查询聚合函数count()sum()avg()max()和min()总结 分组查询group by 子句having 子句 联合查询笛卡尔积内连接外连接自连接子查询单行子查询多行子查询from子句使用子查询 合并查询 聚合查询 聚合查询就是针对表中行与行之间的查询。 聚合函数 count() count(列名)&a…

个人随想-代码生成工具v0+claude+cursor

cursor出来已经有一段时间了&#xff0c;不知道大家用了感觉怎么样。今天就以我个人为例&#xff0c;给大家介绍一下我是如何使用cursor搭建原型。 首先&#xff0c;我并不觉得cursor对于后端程序员带来了革命性改进&#xff0c;我们与很多团队沟&#xff0c;使用cursor80%以上…

spring中的容器接口的实现类和功能

容器实现 BeanFactory 实现 这里我们就来一步步实现BeanFactory的功能。 首先创建我们需要的类 Configuration static class Config{Beanpublic Bean1 bean1(){return new Bean1();}Beanpublic Bean2 bean2(){return new Bean2();}}static class Bean1{private static fina…

【Linux】Shell 编程规范及检查工具推荐

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】&#xff08;全…

【RH124】解释Linux文件系统权限

RH124教材中控制对文件的访问一章中有一道解释Linux文件系统权限的测验题&#xff0c;可以一起来看看&#xff1a; 一、权限解释 这是通过 ls -l 命令查看的结果。它显示了文件或目录的权限、拥有者、所属组等信息。 1、长列表的第一个字符表示文件类型&#xff1a; -是常…

【C语言零基础入门篇 - 16】:栈和队列

文章目录 栈和队列栈栈功能的实现源代码 队列队列功能的实现源代码 栈和队列 栈 什么是栈&#xff1a;功能受限的线性数据结构 栈的特点&#xff1a;先进后出 。例如&#xff1a;仓库进货、出货。 栈只有一个开口&#xff0c;先进去的数据在栈底&#xff08;bottom&#xf…

STM32篇:STM32CubeMX的安装

一.介绍与安装 1.作用 通过界面的方式&#xff0c;快速生成工程文件。 2.下载 官网 https://www.st.com/zh/development-tools/stm32cubemx.html#overview 3.安装 一路下一步&#xff0c;建议不要安装在C盘 4.配置 更新固件包位置&#xff08;比较大&#xff0c;默认在…