169 похожих чатов

Добрый день. Подскажите плз. есть ли какой нибудь способ закэшировать

данные прямо в шаблоне?
Например
<div v-if="getData()">
{{getData()}}
что б функция 2 раза не дергалась ?
Интересует именно в шаблоне - в компоненте и в функции понятно как

12 ответов

17 просмотров

Можно узнать, зачем?

если вью 3.2+, то через v-memo https://v3.vuejs.org/api/directives.html#v-memo если нет, то либо объявляй у нее явные зависимости и выноси в computed, либо пиши свое кэширование

Vladimir- Автор вопроса
Artyom Tuchkov
если вью 3.2+, то через v-memo https://v3.vuejs.or...

Спасибо. Vue второй. computed параметры не дадут. Придется писать. :(

Vladimir
Спасибо. Vue второй. computed параметры не дадут....

ну параметры-то откуда-то берутся, если они заранее известны, то ты все еще можешь посчитать все заранее в computed

Vladimir- Автор вопроса
Artyom Tuchkov
ну параметры-то откуда-то берутся, если они заране...

Параметры берутся из v-for. getData не асинхронная. Ну да можно сбоку к основному списку еще список результатов держать. Ну вобщем вариантов как разрулить много .... тока лень :)

Vladimir
Параметры берутся из v-for. getData не асинхронна...

ну так создай computed, где проходишься по циклу и высчитываешь getData() что там лень, 3 строчки написать?

Vladimir- Автор вопроса
Artyom Tuchkov
ну так создай computed, где проходишься по циклу и...

Ну это уже философский вопрос :) Был бы способ - я б сделал и не думал. А тут теперь думаю - не преждевременная ли это оптимизация :)

Именно в такой формулировке вопроса, проблему можно решить на уровне мемоизации самой функции без участия Vue. (но лучше так всё равно не делать)

Vladimir
Ну это уже философский вопрос :) Был бы способ - я...

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

Vladimir- Автор вопроса
Grigorii K. Shartsev
Именно в такой формулировке вопроса, проблему можн...

Спасибо. Тут вроде все понятно. Просто думал немного жизнь упростить. Судя по тому что в vue3 сделали v-memo - мне не одному это в голову прихолдило :)

Vladimir
Спасибо. Тут вроде все понятно. Просто думал немно...

v-memo про рендеринг. В твоём примере всё также метод будет вызываться дважды.

Vladimir- Автор вопроса
Grigorii K. Shartsev
v-memo про рендеринг. В твоём примере всё также ме...

Почитал - да, не то что я думал - не мой случай. Да и 3го vue нет

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

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта