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

``` Data: (): State => ({ highlightClass: '', isCollapsed:

false
}),

setup (props) {
watch(props.payload, (next, prev) => {
this.highlightClass = prev.priceUsd > next.priceUsd ? 'negative' : 'positive'
})
},
```

как мне внутри watch обновить стейт? такой код выдает ошибку TypeError: Cannot set property 'highlightClass' of undefined

14 ответов

8 просмотров

не нужно юзать стрелочную функцию, если ты хочешь иметь доступ к this а еще лучше не мешать Composition API и Options API, а то получится каша

Danil-Chekalin Автор вопроса
Artyom Tuchkov
не нужно юзать стрелочную функцию, если ты хочешь ...

можно пожулайста пример правильного кода для этого кейса?

Danil Chekalin
можно пожулайста пример правильного кода для этого...

если ты хочешь юзать Options API, то убери сетап и вынеси вотчер отдельно data: () => …. watch: { payload(next, prev) { this.highlightClass = … } },

Danil-Chekalin Автор вопроса
Artyom Tuchkov
если ты хочешь юзать Options API, то убери сетап и...

такой пробовал, почему-то в next и prev объекты одинаковые 🤷

Artyom Tuchkov
не нужно юзать стрелочную функцию, если ты хочешь ...

А я как-то посидел, подумал, и не вижу чего-то криминального в смешивании. Описывать компоненты просто в Composition API может быть неудобно. Если он не разделяется на части, то вместо структурированного Options получается большая каша из кода в одной огромной функции setup. Composition нужен для некоторых отдельных задач. Когда надо подключить какие-то компосаблы, или для конкретных компонентов. Переводить весь компонент, написанный на Options в Composition из-за подключения одного маленького компосабла по мне не очень интересно. Как и писать в целом все-все компоненты в Composition, если мы используем где-то хотя бы один компосабл

Danil Chekalin
такой пробовал, почему-то в next и prev объекты од...

Они не могут быть одинаковые. Отслеживание во Vue не срабатывает, если значение изменилось на такое же, как было

Grigorii K. Shartsev
А я как-то посидел, подумал, и не вижу чего-то кри...

на самом деле наоборот, как по мне, в сетапе гораздо удобнее структурировать всю логику в одном месте, а если компонент большой, то это можно разнести по composable’ам с Options постоянно получается так, что функционал разнесен по разным участкам компонента и нужно туда-сюда скроллить, у меня это постоянно вызывало душевную боль в последнем проекте я перешел на тройку и юзаю исключительно Composition API, сейчас у меня где-то 200+ компонентов, написанных на нем, среди которых есть и огромные, и крошечные, - и все прям супер удобно, не сравнить с Options API

Artyom Tuchkov
на самом деле наоборот, как по мне, в сетапе гораз...

Ну не знаю. Мне структурирование видеть отдельно блоки с состоянием, отдельно вычисления, отдельно отслеживание, отдельно методы и т.д. в заранее определённом порядке, чем всё в одной простыне кода) А разделять компонент на части актуально, если эти части или имеют смысл сами по себе, или если компонент очень большой, и имеет у себя подзадачи

Grigorii K. Shartsev
Ну не знаю. Мне структурирование видеть отдельно б...

у меня часто получается так, что есть несколько каких-то связанных частей в компоненте, которые можно удобно структурировать даже без composable’ов сначала идет одна часть, у которой свои вотчеры, свои компьютед, свои данные, а ниже - другая, у которой все свое по такой структуре очень легко ориентироваться и вся логика как на ладони

Danil Chekalin
такой пробовал, почему-то в next и prev объекты од...

потому что vue тебе отдает в prev и next одну и ту же копию объекта, он не клонирует его за тебя

Artyom Tuchkov
у меня часто получается так, что есть несколько ка...

> сначала идет одна часть, у которой свои вотчеры, свои компьютед, свои данные, а ниже - другая А между ними граница есть?

Artyom Tuchkov
граница в каком смысле?)

Ну, выглядит это всё, как большая куча кода, или явно видно, вот первая часть, а вот другая?

Grigorii K. Shartsev
Ну, выглядит это всё, как большая куча кода, или я...

логически можно понять по названиям переменных + всегда есть пробел между этими частями, который помогает глазами уловить, что тут идет уже что-то другое обычно такие компоненты не очень большие по объему, поэтому разделять такие части - вообще не проблема все большие компоненты разносятся по composable’ам, а маленькие редко превышают 200 строк (вместе со стилями и шаблоном)

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

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

Какой-то там пердун в 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 подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта