Лучший способ интеграции BigNumber.js во Vue проект?

Как можно реализовать интеграцию BigNumber.js в проект для использования в формах?

Вариант 1: Можно использовать computed геттеры и сеттеры, где в сеттерах оборачивать в value в BigNumber -

// emplate
<input v-model="fieldValue" />
// computed
fieldValue: {
   get() { return this.form.count.toString() },
   set(v) { this.form.count = new BigNumber(v) }
}

Минус первого варианта в том, что под каждое поле нужно делать computed свойство с геттерами и сеттерами.

Вариант 2 Компонент обертка, который бы инкапсулировал конвертацию обычного числового типа в bigNubmer и наоборот. Минус: Необходимость дублировать всю внутреннюю логику компонента, но для bigNumber чисел. + Конкретно в моем случае я использую сторонний компонент

Вариант 3 Использовать @change событие и :value атрибут у компонента input вместо v-model. Т.е. в обработчике change оборачивать введенное число в BigNumber и в value получать его значение. минус: не используем v-model, что, как по мне, куда лаконичнее

Какие еще решения можете предложить? Заранее спасибо!

ссылка на либу https://github.com/MikeMcl/bignumber.js
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
Aetae
@Aetae Куратор тега Vue.js
Тлен
1+2. Копмонент-обёртка, использующая метод с геттером-сеттером. Никакую логику переписывать не надо.)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы