Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MeetupView #9

Merged
merged 8 commits into from
Dec 27, 2024
Merged

MeetupView #9

merged 8 commits into from
Dec 27, 2024

Conversation

luquii2
Copy link

@luquii2 luquii2 commented Dec 26, 2024

No description provided.

@jsru-1
Copy link
Contributor

jsru-1 commented Dec 26, 2024

Добавляю преподавателя (@ShGKme) для код-ревью.

@jsru-1 jsru-1 requested a review from ShGKme December 26, 2024 09:17
@jsru-1
Copy link
Contributor

jsru-1 commented Dec 26, 2024

Решение было обновлено, посмотрим что скажет @ShGKme

Comment on lines 20 to 24
props: {
meetup: {
type: Object,
},
},
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Так как компонент не может работать без этого параметра (сразу упадёт с cannot read properties of undefined), параметр должен быть описан, как обязательный.

@jsru-1
Copy link
Contributor

jsru-1 commented Dec 26, 2024

Добавляю преподавателя (@ShGKme) для код-ревью.

@jsru-1 jsru-1 requested a review from ShGKme December 26, 2024 18:07
@luquii2
Copy link
Author

luquii2 commented Dec 26, 2024

Григорий, хотел бы задать вопрос по поводу задания UiClock.
Там нужно было предотвратить утечку памяти setInterval после того как компонент умирал. Я знал, что setInterval нужно удалять в ручную. А как такую ошибку отследить если не знаешь этих тонкостей работы с setInterval?

@jsru-1
Copy link
Contributor

jsru-1 commented Dec 26, 2024

Решение было обновлено, посмотрим что скажет @ShGKme

@jsru-1
Copy link
Contributor

jsru-1 commented Dec 26, 2024

Решение было обновлено, посмотрим что скажет @ShGKme

@@ -69,7 +69,7 @@ export default defineComponent({
<UiFormGroup>
<UiInput v-model.trim="query" type="search" placeholder="Поиск" aria-label="Поиск" small />
</UiFormGroup>
<EmailList :emails="markedEmails" />
<EmailList @delete="(index) => removeEmailByIndex(index)" :emails="markedEmails" />
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

v-on позволяет передавать сразу обработчик события (его параметр будет в $event). А если просто вызывается функция с параметром события - можно описывать совсем коротко @delete="removeEmailByIndex"

@jsru-1 jsru-1 merged commit a9d6db7 into js-tasks-ru:master Dec 27, 2024
1 check passed
@ShGKme
Copy link

ShGKme commented Dec 27, 2024

Григорий, хотел бы задать вопрос по поводу задания UiClock.
Там нужно было предотвратить утечку памяти setInterval после того как компонент умирал. Я знал, что setInterval нужно удалять в ручную. А как такую ошибку отследить если не знаешь этих тонкостей работы с setInterval?

@luquii2

В общем случае - сложно. И часто в работающих приложениях есть утечки, о которых никто не знает, особенно если они маленькие.

Когда есть большие утечки - это становится видно со временем по увеличению нагрузки на процессор/память от вкладки. Особенно если пользователи держат вкладку долгое время не закрывая. Если такое заметно - можно анализировать приложение по вкладке Profiling.

В случае подписчиков событий, особенно на window/document, можно увидеть аномально большое число подписчиков у этих элементов на вкладке Elements, подвкладка Event Listeners

image

Также есть более серьёзные инструменты типа
https://github.com/facebook/memlab

Могу ещё посоветовать репозиторий коллеги: https://github.com/ufocoder/javascript.memory-leaks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants