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

Решена задачка 2.1 Counter и 2.2 MapAdd( добавил .value и поменял wach на computed ) #3

Merged
merged 2 commits into from
Dec 24, 2024

Conversation

SergeyKalabin
Copy link

и поправил предыдущую задачку с приложением погоды по вашему комментарию

@jsru-1
Copy link
Contributor

jsru-1 commented Dec 24, 2024

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

@jsru-1 jsru-1 requested a review from ShGKme December 24, 2024 12:20
Copy link
Contributor

@ShGKme ShGKme left a comment

Choose a reason for hiding this comment

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

Принято

Comment on lines +9 to +21
function increment() {
if( count.value < 5 ) {
count.value++
}
return count.value;
}

function decrement() {
if( count.value > 0 ) {
count.value--
}
return count.value;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Добавлять проверки на выход за границу значения здесь не обязательно. Это уже покрывается отключением кнопок через disabled.

Comment on lines +8 to +9
let x = ref(0);
let y = ref(0);
Copy link
Contributor

Choose a reason for hiding this comment

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

Объявление ref переменной как let обычно является ошибкой:

  • Либо эта переменная никогда не меняется, а значит должна быть const
  • Либо меняется переменная, вместо изменения значения переменной через .value, что приведёт к потере значения изначального ref

Comment on lines +16 to +20
//Вариант 3 не работает
/* const handleClick = computed((event) => {
x.value = `${event.offsetX}px`
y.value = `${event.offsetY}px`
}) */
Copy link
Contributor

Choose a reason for hiding this comment

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

computed = не функция, а вычисленное значение. Этот computed возвращает undefined (в нём нет return), и только мутирует другие переменные (чего делать нельзя). В итоге в handleClick лежит вычисленное значение undefined, что не может быть обработчиком события.

При этом параметр геттера в computed - это его старое значение (в итоге event тут тоже undefined).

Comment on lines +35 to +42
// Вариант 1 работает
// Следим за X и Y для установки нового положения
// watch( [x, y], () => {
// // Находим метку и изменяем её положение
// let map = document.querySelector('.pin')
// map.style.left = `${x.value}px`
// map.style.top = `${y.value}px`
// }, { deep: true })
Copy link
Contributor

Choose a reason for hiding this comment

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

Этот вариант работает, но некорректный, так как напрямую мутирует DOM. Ещё и ищет элемент по всей странице (может найти не тот).

@jsru-1 jsru-1 merged commit 1cb81a0 into js-tasks-ru:master Dec 24, 2024
1 check passed
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.

3 participants