React日期选择器组件有哪些?你想在下一个项目中使用最好的 React Date Picker 组件吗?你来对地方了。他们就在路上!在这篇博文中,我为 React 项目精心挑选了前 15 个免费的最佳 React 日期选择器。但首先,让我们快速了解一下 最佳React日期选择器组件合集的全部内容。
React日期选择器
日期选择器,也被称为一个弹出的日历,日期和时间选择器,或时间选择器,是一个图形用户接口小窗口,其允许用户选择从日历和/或从一个时间范围内的时间的日期。因此,React datepicker 组件也做同样的工作。React Datepicker 组件是一种基于 React.js 的特殊用户界面组件。
这些简单的可重用组件已经成为 React 最流行的库。
注意:在为你的项目选择日期选择器之前,请仔细查看演示、规格和要求。最好通过 Github 存储库进行详细检查。不同的 React 日期选择器支持不同类型的工作。因此,请仔细检查先决条件是否与你的系统完全匹配,或者,如有必要,请先安装它们。
React Datepickers 有什么好处?
最好的日期选择器组件是 React Datepicker 组件。这些点说明了原因。
- 用户只需使用鼠标即可设置或选择日期。
- 无需写下日期。
- 优秀的社区支持。
- 极快。
- 可重复使用的组件。
- 简单而现代的外观。
- 易于设置。
- 轻的。
以及许多其他方面使 React.js Datepicker 组件成为最好的组件之一。
最佳React日期选择器组件合集
哪个React日期选择器组件最好?下面是详细的介绍。注意:下面的列表没有特定的顺序。
1. Wojtekmaj / React Date Picker
主要特点
- 日期选择器
- 时间选择器
- 日期时间范围选择器
- 时间范围选择器
- 日期范围选择器
- 日期时间选择器
- 日历
- 时钟
- 可定制
- 轻量级库
安装命令
npm install react-date-picker --save
代码片段
import React, { useState } from 'react';
import DatePicker from 'react-date-picker';
export default function MyDatePicker() {
const [value, updateValue] = useState(new Date());
const onChange = (date) => {
updateValue(date);
}
return (
<div>
<DatePicker
onChange={onChange}
value={value}
/>
</div>
);
}
2.React day picker
主要特点
- 简单的图书馆
- 易于定制
- 可本地化
- 广泛的示例列表
- 原生 TypeScript 支持
- 日期选择器
- 唱腔支持
安装命令
npm install react-day-picker --save
代码片段
import React, { useState } from "react";
import DayPickerInput from "react-day-picker/DayPickerInput";
import "react-day-picker/lib/style.css";
export default function ReactDayPicker() {
const [date, setDate] = useState(new Date());
function onChange(date) {
setDate(date);
}
return <DayPickerInput onDayChange={onChange} />;
}
3. Material UI 日期/时间选择器
主要特点
- 遵循 Material UI 设计
- 支持 4 种不同的日期库(date-fns、Day.js、Luxon、Moment.js)
- 日期选择器
- 时间选择器
- 日期时间选择器
- 日期范围选择器
- 可本地化
安装命令
Core Material UI 库:
npm install @material-ui/core date-fns @date-io/date-fns@^1.3.13 @material-ui/pickers --save
代码 片段
import React, { useState } from 'react';
import DateFnsUtils from '@date-io/date-fns';
import {
MuiPickersUtilsProvider,
KeyboardDatePicker,
} from '@material-ui/pickers';
export default function MaterialDatePicker() {
const [selectedDate, setSelectedDate] = useState(new Date());
const handleDateChange = (date) => {
setSelectedDate(date);
};
return (
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<KeyboardDatePicker
disableToolbar
variant="inline"
format="MM/dd/yyyy"
margin="normal"
id="date-picker-inline"
label="Date picker inline"
value={selectedDate}
onChange={handleDateChange}
KeyboardButtonProps={{
'aria-label': 'change date',
}}
/>
</MuiPickersUtilsProvider>
);
}
4.Carbon Design System DatePicker
主要特点
- 日期选择器
- IBM 的开源设计系统
- 支持 React、Vue、Angular、Svelte、Vanilla JS
- 通过使用flatpickr 选项完全可定制。
- 便于使用
安装命令
npm install carbon-components carbon-components-react carbon-icons --save
代码片段
import React from 'react';
import { DatePickerInput } from 'carbon-components-react';
export default function CarbonDatePicker() {
return (
<DatePickerInput
placeholder="mm/dd/yyyy"
labelText="Date Picker label"
id="date-picker-single"
onChange={date => {
console.log(date);
}}
/>
</DatePicker>
);
}
5. Airbnb React Dates
主要特点
- 移动友好
- 可本地化
- 日期选择器
- 日期范围选择器
安装命令
npm install react-dates --save
代码片段
import React, { useState } from "react";
import "react-dates/initialize";
import "react-dates/lib/css/_datepicker.css";
import { SingleDatePicker } from "react-dates";
export default function ReactdatesDatepicker() {
const [date, setDate] = useState(null);
const [isFocused, setIsFocused] = useState(false);
function onDateChange(date) {
setDate(date);
}
function onFocusChange({ focused }) {
setIsFocused(focused);
}
return (
<SingleDatePicker
id="date_input"
date={date}
focused={isFocused}
onDateChange={onDateChange}
onFocusChange={onFocusChange}
/>
);
}
6. React Datepicker
主要特点
- 可重复使用的
- 便于使用
- 简单的设计
- 用于本地化的 date-fns
- 日期选择器
安装命令
npm install react-datepicker --save
代码片段
import React, { useState } from "react";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
export default function HackeroneDatepicker() {
const [date, setDate] = useState(new Date());
function onChange(date) {
setDate(date);
}
return <DatePicker selected={date} onChange={onChange} />;
}
7. React Rainbow 组件日期选择器
注意: React Rainbow 是一个 UI 组件库。你必须采用整个库才能使用它。
主要特点
- 日期选择器
- 日期时间选择器
- 日期选择器模式
- 简单的设计
- 支持深色模式
- 可定制
安装命令
npm install react-rainbow-components --save
代码片段
import React, { useState } from "react";
import { DatePicker } from "react-rainbow-components";
export default function RainbowDatepicker() {
const [date, setDate] = useState(null);
function onChange(date) {
setDate(date);
}
return (
<DatePicker
id="datePicker-1"
value={date}
onChange={onChange}
label="DatePicker Label"
formatStyle="large"
/>
);
}
8. Ant Design DatePicker
主要特点
- 日期选择器
- 时间选择器
- 日期时间选择器
- 日期范围选择器
- 提供 UI 组件库
- 可本地化
- 打字稿支持
- 可定制
- 遵循 Ant 设计规范
- 简约设计
- 更好的用户体验
安装命令
npm install antd --save
代码片段
import React, { useState } from "react";
import { DatePicker } from "antd";
import "antd/dist/antd.css";
export default function AntDatepicker() {
const [date, setDate] = useState(new Date());
function onChange(date, dateString) {
setDate(date);
}
return <DatePicker onChange={onChange} />;
}
9. Hypeserver / React Date Range
主要特点
- 日历输入
- 日期范围选择器
- 高度可定制
- 单击并按住选择
安装命令
npm install react-date-range date-fns --save
代码片段
import React, { useState } from "react";
import { Calendar } from "react-date-range";
import "react-date-range/dist/styles.css";
import "react-date-range/dist/theme/default.css";
export default function HypeserverDatepicker() {
const [date, setDate] = useState(new Date());
function onChange(date) {
setDate(date);
}
return <Calendar date={date} onChange={onChange} />;
}
10. RC Datepicker
主要特点
- 体面的设计
- 日期选择器
- 易于设置
- 可定制
安装命令
npm install --save rc-datepicker
代码片段
import React from 'react';
// Import Datepicker
import { DatePicker, DatePickerInput } from 'rc-datepicker';
// Import the default style
import 'rc-datepicker/lib/style.css';
export default class App extends React.Component {
constructor(props, context) {
super(props, context);
// Initial state with date
this.state = {
// or Date or Moment.js
selectedDate: '2017-08-13'
};
// This binding is necessary to make `this` work in the callback
this.onChange = this.onChange.bind(this);
}
onChange(date) {
this.setState({
selectedDate: date
});
}
render() {
return (
<div>
<DatePickerInput
onChange={this.onChange}
value={this.state.selectedDate}
className='my-custom-datepicker-component'
/>
{/* this renders only a fixed datepicker */}
<DatePicker onChange={this.onChange} value={this.state.selectedDate} />
</div>
);
}
}
11.React Datepicker CS
主要特点
- 简化的日期选择器
- 安装简单
- 多语言支持
- 只有 5 个属性
安装命令
npm install react-date-picker-cs --save
代码片段
import React from 'react';
// Import Datepicker
import ReactDatePicker from 'react-date-picker-cs';
export default class App extends React.Component {
constructor(props, context) {
super(props, context);
// Initial state with date
this.state = {
selectedDate: '2017-08-13'
};
// This binding is necessary to make `this` work in the callback
this.handleLog = this.handleLog.bind(this);
}
handleLog(date) {
this.setState({
selectedDate: date
});
}
render() {
return (
<div>
<ReactDatePicker
onChange={this.handleLog}
range={[2013, 2020]}
value={this.state.selectedDate}
disabled={true}
/>
</div>
);
}
}
12. Input Moment
注意:此模块需要 Moment.js 作为 peerDependency。
主要特点
- 日期时间选择器
- 来自 Ionicons 的图标
- 由 Moment.js 提供支持
- 国际学习中心执照
- 易于安装
安装命令
npm i input-moment --save
代码片段
import '../src/less/input-moment.less';
import './app.less';
import moment from 'moment';
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import InputMoment from '../src/input-moment';
import packageJson from '../package.json';
class App extends Component {
state = {
m: moment()
};
handleChange = m => {
this.setState({ m });
};
handleSave = () => {
console.log('saved', this.state.m.format('llll'));
};
render() {
return (
<div className="app">
<h1>
{packageJson.name}: {packageJson.version}
</h1>
<h2>{packageJson.description}</h2>
<form>
<div className="input">
<input type="text" value={this.state.m.format('llll')} readOnly />
</div>
<InputMoment
moment={this.state.m}
onChange={this.handleChange}
minStep={5}
onSave={this.handleSave}
/>
</form>
</div>
);
}
}
13. React Bootstrap 日期选择器
注意:为此,你必须导入 Bootstrap 主题。
主要特点
- 基于 Bootstrap
- 极简设计
- 日期选择器
- 可定制
安装命令
npm install react-bootstrap-date-picker
代码片段
import React from 'react';
// Import Datepicker
import DatePicker from "react-bootstrap-date-picker";
// Import Bootstrap components
import FormGroup from 'react-bootstrap/lib/FormGroup';
import ControlLabel from 'react-bootstrap/lib/ControlLabel';
import HelpBlock from 'react-bootstrap/lib/HelpBlock';
export default class App extends React.Component {
constructor(props, context) {
super(props, context);
// Initial state with date
this.state = {
selectedDate: new Date().toISOString()
};
// This binding is necessary to make `this` work in the callback
this.onChange = this.onChange.bind(this);
}
onChange(value, formattedValue) {
this.setState({
value: value, // ISO String, ex: "2016-11-19T12:00:00.000Z"
formattedValue: formattedValue // Formatted String, ex: "11/19/2016"
});
}
componentDidUpdate() {
// Access ISO String and formatted values from the DOM.
var hiddenInputElement = document.getElementById("example-datepicker");
console.log(hiddenInputElement.value); // ISO String, ex: "2016-11-19T12:00:00.000Z"
console.log(hiddenInputElement.getAttribute('data-formattedvalue')) // Formatted String, ex: "11/19/2016"
}
render() {
return (
<div>
<FormGroup>
<ControlLabel>Label</ControlLabel>
<DatePicker id="example-datepicker" value={this.state.selectedDate} onChange={this.onChange} />
<HelpBlock>Help</HelpBlock>
</FormGroup>
</div>
);
}
}
14.React Infinite Calendar
主要特点
- 无限滚动
- 灵活性
- 可本地化
- 可定制
- 日期选择器
- 可扩展
- 移动友好
- 键盘支持
- 事件和回电
- 主题
安装命令
npm install react-infinite-calendar --save
用法
import React from 'react';
import { render } from 'react-dom';
import InfiniteCalendar from 'react-infinite-calendar';
import 'react-infinite-calendar/styles.css'; // only needs to be imported once
// Render the Calendar
var today = new Date();
var lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);
render(
<InfiniteCalendar
width={400}
height={600}
selected={today}
disabledDays={[0,6]}
minDate={lastWeek}
/>,
document.getElementById('root')
);
15. React Input Calendar
主要特点
- 简单组件
- 用 CSS 编写的所有系统
- 日期输入日历
- 极简设计
- 易于安装
安装命令
npm install react-input-calendar
用法
import Calendar from 'react-input-calendar'
<Calendar format='DD/MM/YYYY' date='4-12-2014' />
最佳React日期选择器组件合集总结
React日期选择器组件有哪些?最后,你对最好的 Vue 日期选择器的追求似乎已经结束。在这些免费的 React.js 日期选择器中进行选择是一项具有挑战性的挑战。但是,如果你坚持自己的标准,你应该能够快速缩小 3 到 4 个最适合你的项目的日期选择器的范围。因此,请彻底检查这些日期选择器组件并获得积极的用户体验。感谢你与我们在一起,我们祝你一切顺利。