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

Как кратко заменить такую запись? Должен включаться один из трех

классов. Параметр size имеет 3 допустимых значения без любых иных.

25 ответов

20 просмотров

size === ' ' ? Истина : size === ' ' ? Истина : иначе

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

Cyrtolat- Автор вопроса

Компьютед не нужен, вынесите в опшины объект classBySize: { small: 'toggle-small', md: 'toggle-md', ... } В компоненте вот так :class="$options.classBySize[size] || ''" Имхо значительно лучше чем три странных равенства

¿Сергей?
Компьютед не нужен, вынесите в опшины объект clas...

а зачем пихать объект с классами в опции, если для этого есть computed?

¿Сергей?
Там нету реактивности, это константа

и зачем здесь отсутствие реактивности, если она тут нужна?

Artyom Tuchkov
и зачем здесь отсутствие реактивности, если она ту...

Если мы говорим об объекте с опциями, там нету никакой реактивности Если использовать так, как я там описал, реактивность будет Можно и компьютед заюзать, но так будет больше кода, тут на вкус и цвет

bohdan 🇺🇦
в компьютед вынеси логику, и ставь класс через нег...

Computed не принимает параметры, в этом случае лучше использовать метод который будет принимать параметр size и возвращать название класса

¿Сергей?
Если мы говорим об объекте с опциями, там нету ник...

смена класса на основе реактивных данных - это как раз то, с чем прекрасно справляется computed таких объектов может быть не 1, а, например, 3, и хранить их в $options довольно странно, на мой взгляд

computed classes, который возвращает массив классов в виде строк если передано this.size, тогда в массив добавляется строка 'toggle-${this.size}' далее просто в шаблоне :class="classes"

Artyom Tuchkov
смена класса на основе реактивных данных - это как...

Покажите мне где в объекте с классами реактивность Например вот в этом classBySize: { small: 'toggle-small', md: 'toggle-md' }

¿Сергей?
Покажите мне где в объекте с классами реактивность...

Хорошо, вот разница, сразу опишу Нереактивно, должно быть в $options ``` classBySize: { small: 'toggle-small', md: 'toggle-md' } Реактивно, нужно выносить в компьютед по-хорошему, но точно не в $options classBySize: { small: this.dynamicCLass1, md: this.dynamicCLass2 } ```

¿Сергей?
Покажите мне где в объекте с классами реактивность...

ну так computed нужно и писать иначе, ты хранишь просто маппер значений на классы, ничто не мешает тебе написать computed с учетом реактивного значения return { ‘toggle-small’: this.size === ‘small’, ‘toggle-md’: this.size === ‘md’, }; можно хоть через one-line if, хоть через switch это написать, на что фантазии хватит

Dmitry
computed classes, который возвращает массив классо...

Не совсем подойдет, там size - строка, нескольких классов сразу не сможет быть

¿Сергей?
Чем ваш подход лучше маппинга?

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

¿Сергей?
Третий пункт - вы абсолютно не правы :)

Это как раз то место, куда можно и нужно складывать статику/константы

Dmitry
почему?

size не может быть сразу medium и small, поэтому класс в данном случае будет всегда один

¿Сергей?
size не может быть сразу medium и small, поэтому к...

computed среагирует только один раз, на одно значение size, о каком множестве вы говорите?

¿Сергей?
Это как раз то место, куда можно и нужно складыват...

в чем цель переизобретения велосипеда, какой профит это дает? представь, что у тебя таких 5 объектов, ты их все будешь складывать в корневой объект? я уже не говорю о том, что условия отображения классов могут быть несколько сложнее или на основе других зависимостей

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта