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

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

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

12 ответов

14 просмотров

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

если вью 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 нет

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта