vue и функции в data

73
07 сентября 2021, 16:00

есть вопрос, который всё никак не даёт мне покоя, предположим `

data() {
    return { 
        fu: this.arr(val),
        firstFu: this.arg(this.fu),
        twoFu: this.list(this.firstFu)
    }
}

соответственно firstFu ничего не выведет, и тем более twoFu, ибо data прогружается первой и не может увидеть потом просчитанное значение, выход простой:

data() {
    return { 
        fu: this.arr(val),
        firstFu: this.arg(this.arr(val)),
        twoFu: this.list(this.arg(this.arr(val)))
    }
}

` но есть ли более элегантный выход из такой ситуации, ибо пихать функцию в функцию от функции несколько длинновато и плохо читабельно

Answer 1

В data() лучше размещать dataholder-ы, а зависимые вычисляемые свойства в секцию computed. При каждом изменении любого из зависимых - значение будет пересчитываться.

Если в props приходят некоторые функции колбэки:

   props: ['arr', 'arg', 'list'],   // callbacks
   data() : {
     return {
        val: 0
     }
   },
   computed: {
     fu() {
       return this.arr(this.val)
     }, 
     firstFu() {
       return this.arg(this.fu)
     },
     twoFu() {
       return this.list(this.firstFu)
     }
   }
READ ALSO
Не работает JS в любых браузерах

Не работает JS в любых браузерах

Вот весь код https://codepenio/croix324/pen/Baaovxx почему-то не работает при клике на кнопку

150
Как получить список роутов?

Как получить список роутов?

Всем приветТакой вопрос: Можно ли в Nuxt

188
Не получается скрыть элементы с помощью jQuery

Не получается скрыть элементы с помощью jQuery

Не получается скрыть иконки ссылокlinks a img в версии сайта для слабовидящих

110