Зацикливание во Vue при использовании метода объекта

Написал небольшую "библиотеку"(пусть будет dateLib) для форматирования времени и дат(аналог moment.js), которая реализована во Vue 2 через миксин. Сама библиотека представляет из себя объект с методами в файле .js.Такая реализация обусловлена возможностью использования цепочки вызовов. А-ля

this.dateLib.operation( -1, 'day', new Date()).format('iso')

^^Это вернёт строку (вчерашний день в формате ISO)

При статичном использовании всё работает как надо. Но если вызов хоть как-то связан с template через методы или computed свойства всё форматируется один раз выдаёт верный результат, после чего возникает зацикливание, (будто метод вызывает сам себя) но это происходит после return result. Потом следует сотня вызовов и прерывание с ошибкой.

[Vue warn]: You may have an infinite update loop in a component render function

В том же случае moment.js возвращает такую же строку, но зацикливания не происходит.

Вот краткий "пересказ" библиотеки:

export const dateLib = {
  someData: null,
  date: null
  ...etc,
  format (some arguments here) {
    ...a lot of code
    return result
  },
  operation (some arguments here) {
    ...some code here
    return this
  }
}

Почему у Vue срабатывает бесконечный триггер на результат?


Ответы (0 шт):