calendar的翻译和学习
原文地址:https://github.com/react-component/calendar
例子:http://react-component.github.io/calendar/
React Calendar
基于react的日历组件
Feature(特征)
- 支持IE9及以上浏览器,Firefox,Safari,
- 支持日、月、年、十年选择面板
- 支持周数
- 支持en_US和zh_CN locale(UI),使用moment.utcOffset设置时区
- 支持的aria和键盘可访问性
Keyboard(键盘)
- 前一个月(PageUp)
- 下个月(PageDown)
- 标签为小时输入:最后一小时(Up),接下来的一个小时(Down)
- 标签为小时输入:最后一分钟(Up),一分钟(Down)
- 标签为小时输入:最后一秒(Up),下一秒(Down)
- 去年(Control + left)
- 明年(Control + right)
install (安装)
npm install rc-calendar
Usage (使用)
Development
npm install npm start
API
1. rc-calendar props
name | type | default | description |
---|---|---|---|
prefixCls | String | 该组件prefixcls | |
className | String | 根节点的附加CSS类 | |
style | Object | 根DOM节点的附加样式 | |
dateRender | (current, value) => React.Node | 日期 | |
renderSidebar | () => React.Node | 侧栏 | |
renderFooter | () => React.Node | 额外的页脚 | |
value | moment | 输入值的当前值 | |
defaultValue | moment | 如输入的默认值 | |
locale | Object | import from ‘rc-calendar/lib/locale/en_US’ | 日历设置 |
format | String | depends on whether you set timePicker and your locale | 用于格式化/解析日期(没有时间)到输入的值 |
disabledDate | Function(current:moment):Boolean | 是否禁用当前日期的选择 | |
disabledTime | Function(current:moment):Object | a function which return a object with member of disabledHours/disabledMinutes/disabledSeconds according to rc-time-picker | |
showDateInput | Boolean | true | 是否在日历面板上方显示输入 |
showWeekNumber | Boolean | false | 是否显示周数 |
showToday | Boolean | true | 是否显示当前按钮 |
showOk | Boolean | auto | 页脚是否有OK按钮 |
timePicker | React Element | rc-timer-picker/lib/module/panel element | |
onSelect | Function(date: moment) | 从日历中选择日期时调用 | |
onChange | Function(date: moment) | 日历(下一年/下个月/键盘)日期更改时调用 | |
dateInputPlaceholder | String | 日期输入框的占位符 | |
mode | enum(‘time’, ‘date’, ‘month’, ‘year’, ‘decade’) | ‘date’ | 控制应该显示哪种面板 |
onPanelChange | Function(date: moment, mode) | 面板更改时调用 |
2. rc-calendar/lib/RangeCalendar props
name | type | default | description |
---|---|---|---|
prefixCls | String | 该组件prefixcls | |
className | String | 根节点的附加CSS类 | |
style | Object | 根DOM节点的附加样式 | |
renderSidebar | () => React.Node | 侧栏 | |
renderFooter | () => React.Node | 额外的页脚 | |
selectedValue | moment[] | 2个元素的当前选定值范围 | |
defaultSelectedValue | moment[] | 默认选定值范围 | |
locale | Object | import from ‘rc-calendar/lib/locale/en_US’ | 日历设置 |
format | String | depends on whether you set timePicker and your locale | 用于格式化/解析日期(没有时间)到输入的值 |
disabledDate | Function(current:moment):Boolean | 是否禁用当前日期的选择 | |
showWeekNumber | Boolean | false | 是否显示周数 |
showToday | Boolean | true | 是否显示当前按钮 |
showOk | Boolean | auto | 页脚是否有OK按钮 |
showClear | Boolean | false | 是否有明确的按钮在标题 |
timePicker | React Element | rc-timer-picker/lib/module/panel element | |
onSelect | Function(date: moment) | 从日历中选择日期时调用 | |
onChange | Function(date: moment) | 日历(下一年/下个月/键盘)日期更改时调用 | |
dateInputPlaceholder | String | 日期输入框的占位符 | |
type | enum(‘both’,’start’, ‘end’) | both | 是否固定开始或结束选定的值。检查开始端范围示例 |
mode | enum(‘time’, ‘date’, ‘month’, ‘year’, ‘decade’) | [‘date’, ‘date’] | 控制应该显示哪种面板 |
onPanelChange | Function(date: moment[], mode) | 面板更改时调用 | |
hoverValue | moment[] | 控制悬停的值 | |
onHoverChange | Function(hoverValue: moment[]) | 悬停值更改时调用 |
3. rc-calendar/lib/MonthCalendar props
name | type | default | description |
---|---|---|---|
prefixCls | String | 该组件prefixcls | |
className | String | 根节点的附加CSS类 | |
style | Object | 根DOM节点的附加样式 | |
value | moment | 输入值的当前值 | |
defaultValue | moment | 如输入的默认值 | |
locale | Object | import from ‘rc-calendar/lib/locale/en_US’ | 日历设置 |
disabledDate | Function(current:moment):Boolean | 是否禁用当前日期的选择 | |
onSelect | Function(date: moment) | 从日历中选择日期时调用 | |
monthCellRender | function | 自定义月份单元格渲染方法 | |
dateCellRender | function | 自定义日期单元格渲染方法 | |
monthCellContentRender | function | 自定义月份单元格内容呈现方法,内容将追加到单元格中。 | |
onChange | Function(date: moment) | 日历(下一年/下个月/键盘)日期更改时调用 |
4. rc-calendar/lib/Picker props
name | type | default | description | |
---|---|---|---|---|
prefixCls | String | 该组件prefixcls | ||
calendar | Calendar React Element | |||
disabled | Boolean | 选择器是否已禁用 | ||
placement | String | Object | one of [‘left’,’right’,’top’,’bottom’, ‘topLeft’, ‘topRight’, ‘bottomLeft’, ‘bottomRight’] | |
align | Object: alignConfig of dom-align | 值将合并到位置的对齐配置中。 | ||
animation | String | index.css支持’slide-up’ | ||
transitionName | String | css class for animation | ||
value | moment | 输入值的当前值 | ||
defaultValue | moment | 如输入的默认值 | ||
onChange | Function(date: moment) | 日历(下一年/下个月/键盘)日期更改时调用 | ||
onOpenChange | (open:boolean) => void | 当打开/关闭日历容器时调用 | ||
open | Boolean | 控制容器开启的状态 | ||
getCalendarContainer | () => HTMLElement | 将要呈现的日历的DOM节点 |
5. rc-calendar/lib/FullCalendar props
name | type | default | description |
---|---|---|---|
prefixCls | String | 该组件prefixcls | |
Select | React Component Class | 选择组件类 | |
value | moment | 输入值的当前值 | |
defaultValue | moment | 如输入的默认值 | |
defaultType | string | data | 默认面板类型:日期/月份 |
type | strint | 面板类型:日期/月份 | |
onTypeChange | function(type) | 当面板类型更改时调用 | |
fullscreen | bool | false | |
monthCellRender | function | 自定义月份单元格渲染方法 | |
dataCellRender | function | 自定义日期单元格渲染方法 | |
monthCellContentRender | function | 自定义月份单元格内容呈现方法,内容将追加到单元格中 | |
dateCellContentRender | function | 自定义日期单元格内容呈现方法,内容将追加到单元格中。 | |
onSelect | Function(date: moment) | 从日历中选择日期时调用 |
Test Case (测试用例)
npm test
npm run chrome-test