# useCollator

## 使用方法

返回官方认可的、按语言比较字符串的比较器，供自定义排序使用。提供者语言变了，或者选项变了，比较器会重新创建。

```ts
import { useCollator } from '@astryx-vue/core/locale'
```

```ts
const collator = useCollator({ numeric: true })

const sorted = computed(() => [...items.value].sort((a, b) => collator.value.compare(a, b)))
```

## 建议

| 指引 | 做法 |
| --- | --- |
| 推荐 | 在自定义的 Table 排序函数里、以及其他用户看得见的字符串排序里，复用 `collator.value.compare`。 |
| 避免 | 自己 `new Intl.Collator` 或者调 `localeCompare`；那会绕过「语言由提供者决定」这个约定。 |

## 参数

| 名称 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| `options` | `MaybeRefOrGetter` | — | 可选的比较规则，例如数字顺序、大小写敏感度、标点处理和大小写先后。选项会变的时候传 `ref` 或取值函数，变了比较器会重建。 |

## 返回值

| 名称 | 类型 | 说明 |
| --- | --- | --- |
| `collator` | `ComputedRef` | 绑定到当前 `InternationalizationProvider` 语言的比较器，带缓存。比较时读 `collator.value`。 |
