Почему при передаче вычисляемого свойства в пользовательскую директиву в качестве параметра оно передаётся единожды и не изменяется?

Vue.js ведет себя таким образом, потому что при передаче вычисляемого свойства в качестве параметра в пользовательскую директиву, происходит передача значения вычисленного свойства на момент инициализации директивы. Это значение сохраняется внутри директивы и не обновляется автоматически при изменении вычисляемого свойства в родительском компоненте или внутри самой директивы.

Изменение вычисляемого свойства не приводит к автоматическому обновлению параметров, переданных в директиву, потому что Vue.js использует механизм реактивности, который отслеживает только зависимости, объявленные явно. Вычисляемое свойство не является зависимостью для пользовательской директивы, поэтому изменения в вычисляемом свойстве не отслеживаются автоматически.

Однако, если вам необходимо обновить параметры директивы при изменении вычисляемого свойства, вы можете использовать слежение за изменениями с помощью встроенной директивы watch. Внутри функции наблюдения можно определить логику, которая будет выполняться при изменении вычисляемого свойства. Например:

Vue.directive('my-directive', {
  bind(el, binding) {
    // сохраняем значение вычисляемого свойства на момент инициализации
    const initialValue = binding.value;

    // определяем логику для обновления значения параметра директивы при изменении свойства
    const updateValue = () => {
      const newValue = binding.value;

      // здесь можно выполнить логику, которая должна произойти при изменении значения
      console.log(`Значение вычисляемого свойства изменилось с ${initialValue} на ${newValue}`);
    };

    // вызываем логику для обновления значения параметра директивы в начале
    updateValue();

    // слежение за изменениями вычисляемого свойства
    this.vm.$watch(binding.expression, updateValue);
  }
});

Теперь, когда вы измените вычисляемое свойство в родительском компоненте, параметр директивы также будет обновляться и запускать соответствующую логику на каждом изменении.