-
Notifications
You must be signed in to change notification settings - Fork 1
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
Conversation
Добавляю преподавателя (@ShGKme) для код-ревью. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Принято
function increment() { | ||
if( count.value < 5 ) { | ||
count.value++ | ||
} | ||
return count.value; | ||
} | ||
|
||
function decrement() { | ||
if( count.value > 0 ) { | ||
count.value-- | ||
} | ||
return count.value; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Добавлять проверки на выход за границу значения здесь не обязательно. Это уже покрывается отключением кнопок через disabled
.
let x = ref(0); | ||
let y = ref(0); |
There was a problem hiding this comment.
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
//Вариант 3 не работает | ||
/* const handleClick = computed((event) => { | ||
x.value = `${event.offsetX}px` | ||
y.value = `${event.offsetY}px` | ||
}) */ |
There was a problem hiding this comment.
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).
// Вариант 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 }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Этот вариант работает, но некорректный, так как напрямую мутирует DOM. Ещё и ищет элемент по всей странице (может найти не тот).
и поправил предыдущую задачку с приложением погоды по вашему комментарию