react-big-calendar 一个为React构建的事件日历组件

3,047 阅读2分钟

react-big-calendar

一个为React构建的事件日历组件,针对现代浏览器(阅读:IE10+),并在经典的table-ception方法上使用flexbox。

DEMO和文档

灵感来自于Full Calendar

使用和设置

yarn add react-big-calendarnpm install --save react-big-calendar

包括react-big-calendar/lib/css/react-big-calendar.css 的样式,并确保你的日历的容器元素有一个高度,否则日历将不可见。要提供你自己的自定义样式,请参见自定义样式主题。

启动器

在本地运行示例

$ git clone git@github.com:jquense/react-big-calendar.git
$ 

本地化和日期格式化

react-big-calendar 包括三个处理日期格式化和文化本地化的选项,这取决于你对DateTime库的偏好。你可以使用Moment.jsGlobalize.jsdate-fns本地化器。

不管你的选择如何,你必须选择一个本地化器来使用这个库。

Moment.js

import { Calendar, momentLocalizer } from 'react-big-calendar'
import moment from 'moment'

const localizer = momentLocalizer(moment)

const MyCalendar = props => (
  <div>
    <Calendar
      localizer={localizer}
      events={myEventsList}
      startAccessor="start"
      endAccessor="end"
      style={{ height: 500 }}
    />
  </div>
)

Globalize.js v0.1.1

import { Calendar, globalizeLocalizer } from 'react-big-calendar'
import globalize from 'globalize'

const localizer = globalizeLocalizer(globalize)

const MyCalendar = props => (
  <div>
    <Calendar
      localizer={localizer}
      events={myEventsList}
      startAccessor="start"
      endAccessor="end"
      style={{ height: 500 }}
    />
  </div>
)

dat-fns v2

import { Calendar, dateFnsLocalizer } from 'react-big-calendar'
import format from 'date-fns/format'
import parse from 'date-fns/parse'
import startOfWeek from 'date-fns/startOfWeek'
import getDay from 'date-fns/getDay'
import enUS from 'date-fns/locale/en-US'

const locales = {
  'en-US': enUS,
}

const localizer = dateFnsLocalizer({
  format,
  parse,
  startOfWeek,
  getDay,
  locales,
})

const MyCalendar = props => (
  <div>
    <Calendar
      localizer={localizer}
      events={myEventsList}
      startAccessor="start"
      endAccessor="end"
      style={{ height: 500 }}
    />
  </div>
)

自定义样式

开箱即用,你可以包含编译好的CSS文件并开始运行。但是,有时候,你可能想让大日历的样式与你的应用程序的样式相匹配。出于这个原因,SASS文件被包含在Big Calendar中。

  @import 'react-big-calendar/lib/sass/styles';
  @import 'react-big-calendar/lib/addons/dragAndDrop/styles'; // if using DnD

SASS的实现提供了一个variables 文件,其中包含了颜色和大小的变量,你可以根据你的应用来更新。_注意:_改变和/或覆盖样式可能会导致你的大日历的渲染问题。仔细测试每个变化。

在Reactiflux Discord上加入我们

如果你有任何问题,请加入我们Reactiflux Discord社区的#libraries频道。