981377660LMT / ts

ts学习
6 stars 1 forks source link

dayjs api 设计 #439

Open 981377660LMT opened 7 months ago

981377660LMT commented 7 months ago

dayjs 的 API 设计有以下几个特点:

  1. 链式操作dayjs 的方法大多可以链式调用,例如 dayjs().year(2000).month(1).date(1)

  2. 不可变性:所有 dayjs 对象都是不可变的。例如,当你调用 .year(2000) 时,会返回一个新的 dayjs 对象,而不是修改原始对象。

  3. 轻量级dayjs 的代码库非常小,只有 2kB,但提供了丰富的 API 和功能。

  4. 易于使用的 get 和 set apidayjs 的 API 设计简洁明了,易于理解和使用。例如,获取年份只需调用 .year(),设置年份只需调用 .year(2000)

  5. 国际化dayjs 支持多种语言环境,可以通过插件实现本地化和国际化。

  6. 插件化dayjs 支持插件扩展,用户可以根据需要添加或删除功能。

981377660LMT commented 7 months ago

dayjs 的国际化和插件化使用方法如下:

国际化

首先,你需要引入你需要的语言环境文件,然后使用 locale 方法来设置语言环境。例如,设置为中文:

import 'dayjs/locale/zh-cn'  // 引入中文语言环境
dayjs.locale('zh-cn') // 使用中文语言环境

插件化

使用插件,你需要先引入插件,然后使用 extend 方法来使用它。例如,使用 relativeTime 插件:

import relativeTime from 'dayjs/plugin/relativeTime'
dayjs.extend(relativeTime)

console.log(dayjs().from(dayjs().add(1, 'day')))  // "in a day"

这将使 dayjs 对象具有 .from.fromNow.to.toNow 等方法,可以用来显示相对时间。