Типо для быстрого рефакторинга, ибо переменную поправить легче чем строку
https://vuex.vuejs.org/guide/mutations.html#using-constants-for-mutation-types
это "ПОЛИМОРФИЗМ" лайк
конкретно так делать особо смысла нет, если использовать константы, то надо их экспортировать, чтобы и в остальных местах использовать их
в большинстве ситуаций это просто карго-культ)
Это в редаксе так было принято делать для типов экшенов)
Чтобы не было магических строк в коде. Но конкретно эта реализация не до конца решает эту проблему
Мне кажется, это масштабных вещей
Хочу умереть
Та вот и я понял, что не случится )
this.$store.commit(constants.COMMITS.SUPER_LONG_COMMIT_NAME)
Это извините меня пиздец
Люди на редаксе в былые времена так и писали)
Да, не надо эту тему использовать, плохая привычка
Сюда ещё модули добавить, и будет хуже вонять чем общажный туалет, при чем мужской
А вы можете четко сформулировать чем плох этот код?)
Почему бы по простому не типизировать commit?
Если бы js был статически типизированным - было бы проще)
Длинная строка, названия коммитов никогда практически не меняются, как и урлы эндпоинтов
Чем плохо длинное название? А что, лучше писать строкой с риском опечататься?)
в джаваскрипте практически везде есть риск опечататься
Но с константами редактор подсказывает лучше)
За два года ни разу не имел проблем с этим, да и смысла не вижу в этой перестраховке
Ну, это уже субъективно)
Все равно быстрее без констант, их ещё нужно создать, импортировать в модуль, объявить, импортировать в компонент и использовать Быстрее замапить одним действием и вторым использовать
Мне тоже не нравятся константы, но это точно лучше, чем писать строки) Тут, в общем, зависит от того, с чем сравнивать)
Насколько я читал у Стояна Стефанова это вообще про экономию памяти. Типо в минимизированном коде меньше символов занимает, т.к. константу можно заменить одной буквой при минимизации, а строку - нет. Но возможно я просто не так понял, та и в книжке много разных страшных извращений было :)
Нетч это вообще не про это
Ладно, мы это тут такие умные, мы видели код друг друга)
Тогда не так понял то что там написано🤷♀ Но не очень понимаю как это поможет в контроле опечаток если разбить на модули. Строки конкатить?
У вас сборщик свалится если по неправильному имени пытаетесь импортировать
Эта штука - борьба с опечатками. В условиях нетипизированных аргументов метода commit, это пока лучшее, что придумано. Из других вариантов бороться с этим - типизированные сторы
Да, но если врублен неймспейс модуля то все равно получается что-то такое: commit('users/${constants.SET_USER}') Такое себе...
не, тут будет так commit('${constants.USERS}${constants.SLASH_SYMBOL}${constants.SET_USER}')
1. единая точка входа, если вы хотите использовать экшн то импортируете её имя из единого файла 2. можно задать любое человеческое описание в переменной и что делает этот экшн который видно в девтулзах ps: как показывает практика это неоправданная дичь
Все вопросы к авторам вьюкса 🤷♂️
В большинстве ситуаций это просто идиотизм
Обсуждают сегодня