分享react后台管理系统常见的组件/知识点

前言

虽然各个前端框架的常用组件库已经非常完善,但做具体业务时,一般情况下,我们无法直接套用组件,需要自己进行撰写对应业务逻辑。

这篇文章总结做react表单列表常见的组件/知识点。

注意:本篇仅提供相关功能的核心逻辑或关键代码。

一、准备工作

本篇介绍的是关于react和组件库ant design的知识点/代码。请自行下载安装对应工具。

接下来正式进入知识点/代码介绍。

二、常用知识点

1、日期选择框

1.1、开发中常见的问题

  • 数据赋值问题
  • 格式转换格式

数据赋值,常见的有两种数据定义方式

  • const [form] = Form.useForm():用于获取 antd 表单实例,借助此实例能对表单数据进行操作,如设置值、获取值、校验等,是专门针对表单功能的操作工具。
  • const [inputUploadForm, setInputUploadForm] = useState({}):是使用 React 的 useState Hook 来创建一个状态变量 inputUploadForm 及其更新函数 setInputUploadForm,用于管理普通数据状态,可处理任意类型的数据,不限于表单数据。

 格式转换也就是string<->moment相互转换

1.2、单选日期

组件代码

<DatePicker
    allowClear
    disabled={listUploadCheck?true:false}
    onChange={(date,dateString)=>{singleSelectDate(date,dateString)}}
    format="YYYYMM"
    picker="month"
    style={{ width: '100%' }}
/>

对应函数方法

    const singleSelectDate=(date,dateString)=>{
    console.log("日期格式>>",date,"字符串格式>>>",dateString,);

    //(常见就是给Form(const [form] = Form.useForm())和useState定义的数据,如const [inputUploadForm,setInputUploadForm]=useState({})

    // 赋值     
    form.setFieldsValue({
        month:date
    })
    setInputUploadForm((prevParams) => ({
                ...prevParams,
                month:dateString
    }))
  }

通过修改format属性决定精准到年月日

 format="YYYYMMDD" (看后端数据需要,也可以是YYYY-MM-DD 也就是2025-01-01)
picker="day"

format="YYYYMM" 
picker="month"


format="YYYY" 
picker="year"

1.3、起止日期

组件代码

import {
    DatePicker,
} from "antd";
const { RangePicker } = DatePicker

<RangePicker
    allowClear
    disabled={listUploadCheck==true?true:false}
    format="YYYY-MM-DD"
    picker="day"
    onChange={(date,dateString)=>{selectDate(date,dateString)}}
    style={{ width: '100%' }}
/>

对应的函数方法

    const selectDate=(date,dateString)=>{
        //起止,dateString是字符串数组,[0]取到开始时间,[1]取到结束时间
        //正常赋值date给动态表单
        
        console.log("日期格式>>",date,"字符串格式>>>",dateString);
        //如
        uploadForm.setFieldsValue({
            effectiveTime:date
        })
        setInputUploadForm((prevParams) => ({
                ...prevParams,
                startTime:dateString[0],
        		endTime:dateString[1],
        }))
  }

1.4、格式转换

安装和引入对应的包(用的npm)
//安装
instanll install mement 

//在页面引入
import moment from "moment";

 字符串->moment类型
//如
let stringTime= xx  //假设这是一个日期字符串如"2025-01-01"
let momentTime1=moment(stringTime,'YYYY') //moment格式,精准到年 
let momentTime2=moment(stringTime,'YYYYMM') //moment格式,精准到月
let momentTime3=moment(stringTime,'YYYYMMDD') //moment格式,精准日
moment类型->字符串
//如
let momentTime= xx  //假设这是一个精准到日的moment格式
let stringTime1=moment(momentTime,'YYYY') //字符串格式,精准到年, "2025"
let stringTime2=moment(momentTime,'YYYYMM') //字符串格式,精准到月,"202501"
let stringTime3=moment(momentTime,'YYYYMMDD') //字符串格式,精准日,"20250101"

2、下拉框数据的遍历渲染

情况1:适用于动态数据的遍历渲染

情况2:适用于静态数据的遍历渲染

2.1、动态数据的渲染(Select+Select.Option )

这种一般适用于从后端接口获取下拉框数据

 组件代码

<Select 
    allowClear
    onChange={(value)=>{
        console.log("选择区分了,值为>>>",value);
        setInputForm((prevState) => ({
        ...prevState,
        areaCode: value || "",
        }))
    }}
    placeholder="请选择"
    >
    //对象数组的遍历
    {areaList.map((item,index)=>{
        return(
        <Select.Option value={item.areaCode} key={index} >{item.areaName}</Select.Option>
        )
    })}
</Select>

对应的数据格式

//假设对象数组长这样
//根据后端返回的数据和字段进行微调。
const [areaList,setAreaList]=useState([
{
	areaCode:"X001",
	areaName:"区分1"
},
{
	areaCode:"X002",
	areaName:"区分2"
},
{
	areaCode:"X003",
	areaName:"区分3"
},
]) 

2.2、静态数据的渲染(Select+属性options)

下拉框数据一般是固定不变的,或者数据量极少的

组件代码

<Select 
    allowClear
    placeholder="请选择"
    onChange={(value)=>{
        console.log("选择了上传状态>>>",value);
        setInputForm((prevParams) => ({...prevParams,uploadStatus:value}))}}
    options={[
        {
        value: "1",
        label: "已上传",
        },
        {
        value: "2",
        label: "未上传",
        },
    ]}
    >
</Select>

 三、小结

本篇总结两个常用知识点,这篇文章会不定期更新,喜欢这篇文章的朋友可以先关注、收藏,及时获取文章最新消息

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

自动驾驶---不依赖地图的大模型轨迹预测

1 前言 早期传统自动驾驶方案通常依赖高精地图&#xff08;HD Map&#xff09;提供道路结构、车道线、交通规则等信息&#xff0c;可参考博客《自动驾驶---方案从有图迈进无图》&#xff0c;本质上还是存在问题&#xff1a; 数据依赖性高&#xff1a;地图构建成本昂贵&#xf…

如何在您的 QQ机器人 中集成 码本 AI 模型!

如何在您的QQ机器人中集成 码本 AI 模型&#xff01; 开源技术栏 通过使用此工具&#xff0c;您可以轻松地将 码本 API 服务 集成到您的 QQ 机器人 中&#xff0c;实现快速部署和运行。 这个工具专为简化复杂流程设计&#xff0c;即便是初学者也能轻松上手&#xff0c;让您的…

Java与数据库

目录 一.本文焦点&#xff1a; 二.数据库常用数据类型 三.对数据库操作 四.对数据库中的表操作 五.条件表达 六. 表查询操作进阶 1.多表连接查询 1&#xff09;交叉连接查询 2&#xff09;内连接&#xff08;取两表交集&#xff09; 3&#xff09;外连接 4&#xff09…

基于ANTLR4的大数据SQL编辑器解析引擎实践|得物技术

一、背景 随着得物离线业务的快速增长&#xff0c;为了脱离全托管服务的一些限制和享受技术发展带来的成本优化&#xff0c;公司提出了大数据Galaxy开源演进项目&#xff0c;将离线业务从全托管且封闭的环境迁移到一个开源且自主可控的生态系统中&#xff0c;而离线开发治理套…

HTML第四节

一.复合选择器 1.后代选择器 注&#xff1a;1.后代选择器会选中后代所有的要选择的标签 2.儿子选择器 3.并集选择器 注&#xff1a;1.注意换行&#xff0c;同时选中多种标签 4.交集选择器 注&#xff1a;1.标签选择器放在最前面&#xff0c;例如放在类选择器的前面 2.两个选择…

数字后端培训实战项目六大典型后端实现案例

Q1:请教一个问题&#xff0c;cts.sdc和func.sdc在innovus用如何切换&#xff1f;在flow哪一步切换输入cts.sdc&#xff1f;哪一步切换到func.sdc&#xff0c;具体如何操作&#xff1f; 这个学员其实就是在问使用分段长clock tree时具体的flow流程是怎么样的&#xff1f;针对时…

linux 使用阿里云盘 阿里网盘

可参考&#xff1a;https://blog.csdn.net/qq_41174671/article/details/127310715 一、对文件<100M的可以使用如下方法&#xff1a; 1.临时使用阿里网盘 wget https://github.com/tickstep/aliyunpan/releases/download/v0.2.7/aliyunpan-v0.2.7-linux-amd64.zip unzip …

性能测试--大厂面试问题解析

性能测试作为软件开发中的关键环节&#xff0c;确保系统在高负载下仍能高效运行。面试中&#xff0c;相关问题常被问及&#xff0c;包括定义、类型、工具选择、规划与执行方法、常见瓶颈、敏捷环境下的处理、监控作用、虚拟用户数量确定、功能测试的区别、JMeter工作原理、HTTP…

hom_mat2d_to_affine_par 的c#实现

hom_mat2d_to_affine_par 的c#实现 背景&#xff1a;为课室贡献一个通用函数&#xff0c;实现halcon算子的同等效果&#xff0c;查询csdn未果&#xff0c;deepseek二哥与chtgpt大哥给不了最终程序&#xff0c;在大哥与二哥帮助下&#xff0c;最终实现同等效果。 踩坑&#xf…

前端跨域设置 withCredentials: true

在做登录认证的时候&#xff0c;会出现请求未登录的情况&#xff0c;查看请求头的时候发现并没有把登录时的cookie设置到第二次的请求头里面。查看资料才知道跨域请求要想带上cookie&#xff0c;必须要在ajax请求里加上 withCredentials: true 再次访问发现请求头可以携带cook…

【漫话机器学习系列】122.相关系数(Correlation Coefficient)

深入理解相关系数&#xff08;Correlation Coefficient&#xff09; 1. 引言 在数据分析、统计学和机器学习领域&#xff0c;研究变量之间的关系是至关重要的任务。我们常常想知道&#xff1a;当一个变量变化时&#xff0c;另一个变量是否也会随之变化&#xff1f;如果会&…

uniapp+微信小程序+地图+传入多个标记点显示+点击打开内置地图导航+完整代码

一、效果展示 二、完整代码 <template><view class"container"><map class"map-container" :latitude"latitude" :longitude"longitude" :markers"markers" :controls"controls" show-location m…

高效数据管理:WPF中实现带全选功能的DataGrid复选框列

目录 引言项目结构与准备工作XAML布局设计后台代码实现视图模型设计总结引言 在许多应用场景中,我们需要在表格中选择多行数据进行批量操作,如删除、导出等。为了提高用户体验,通常会在表格的第一列添加一个复选框,允许用户逐个或批量选择数据项。本文将详细介绍如何在 WP…

一周学会Flask3 Python Web开发-SQLAlchemy简介及安装

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射&#xff08;ORM&#xff09;工具&#xff0c;…

《Linux C 智能 IO 矩阵:输入输出的自适应数据流转》

1. 标准库IO简介 标准库IO特点&#xff1a;通过操作系统提供的接口&#xff08;API&#xff09;和操作系统进行交互。&#xff08;接近100个函数&#xff09; 1.1. IO的过程 操作系统&#xff1a;向上为用户提供操作接口&#xff0c;向下为统筹控制硬件。 操作系统的组成&#…

【大模型理论篇】--Mixture of Experts架构

Mixture of Experts&#xff08;MoE&#xff0c;专家混合&#xff09;【1】架构是一种神经网络架构&#xff0c;旨在通过有效分配计算负载来扩展模型规模。MoE架构通过在推理和训练过程中仅使用部分“专家”&#xff08;子模型&#xff09;&#xff0c;优化了资源利用率&#x…

智能云呼叫中心如何升级企业服务?带来新商机

当某国际零售品牌通过部署云呼叫中心将客服响应效率提升73%时&#xff0c;这场由云计算掀起的客户服务革命已悄然渗透到企业运营的毛细血管。在数字化转型的深水区&#xff0c;云呼叫中心正从"成本中心"蜕变为"价值引擎"&#xff0c;推动企业构建差异化的服…

java+jvm笔记

JUC synchornized原理&#xff08;java锁机制&#xff09;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 升级顺序&#xff1a; 无锁偏向锁&#xff0c;只有一个线程来访问轻量级锁&#xff0c;有两个线程交替访问重锁&#xff0c;两个及以上线…

CES Asia 2025增设未来办公教育板块,科技变革再掀高潮

作为亚洲消费电子领域一年一度的行业盛会&#xff0c;CES Asia 2025&#xff08;第七届亚洲消费电子技术贸易展&#xff09;即将盛大启幕。今年展会规模再度升级&#xff0c;预计将吸引超过500家全球展商参展&#xff0c;专业观众人数有望突破10万。除了聚焦人工智能、物联网、…

Sass 模块化革命:深入解析 @use 语法,打造高效 CSS 架构

文章目录 前言use 用法1. 模块化与命名空间2. use 中 as 语法的使用3. as * 语法的使用4. 私有成员的访问5. use 中with默认值6. use 导入问题总结下一篇预告&#xff1a; 前言 在上一篇中&#xff0c;我们深入探讨了 Sass 中 import 语法的局限性&#xff0c;正是因为这些问题…