Добавить Vue. js вычисляемое свойство к данным, собранным с сервера. - PullRequest
1 голос
/ 02 апреля 2020

Исходя из Knockout. js, где вы можете просто создать наблюдаемое везде, определяя его, есть ли что-то похожее в Vue. js?

let vm = {
    someOtherVar: ko.observable(7),
    entries: ko.observableArray()
};

function addServerDataToEntries(data) {
    data.myComputed = ko.pureComputed(() => vm.someOtherVar() + data.bla);
    vm.entries.push(data);
}

addServerDataToEntries({ bla: 1 });

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

1 Ответ

1 голос
/ 02 апреля 2020

Я не знаком с тем, как Knockout делает это, но звучит как Vue, вычисленный. Создайте объект данных для хранения выбранных данных:

data() {
  return {
    items: null
  }
}

Представьте, что вы извлекаете его в хуке created (или Vuex, где бы то ни было):

async created() {
  const response = await axios.get(...);
  this.items = response.data;
}

Создайте свои вычисленные значения:

computed: {
  itemsFormatted() {
    if (!this.items) return null;
    return this.items.map(item => {
      // Do whatever you want with the items
    });
  }
}

Вот демо 1012 *, использующее этот шаблон, где я загружаю некоторые данные и распечатываю отфильтрованные результаты из них. Дайте мне знать, если я неправильно понял, что вы ищете. (Вы можете увидеть исходные извлеченные данные в консоли.)

...