понимаю их бонус по сравнению с мапами...
Например:
С константой запись: this.$store.getters['things/' + Types.getters.GET_FIRST_THING]
С мапом: this['things/GET_FIRST_THING'] или еще короче this.GET_FIRST_THING (если объявить как объект в mapGetter и назначить ключ для геттера)
Опять же, геттер надо будет в компьютед писать тогда и придумывать название переменной, которая будет его return делать, чтобы использовать в компоненте (если не через mapGetter)
В чем преимущество констант на самом деле?
Они не альтернатива мапам. Они альтернатива простым строчкам. Профит в том, что используются константы, а не сырые строки. Константа - конкретная сущность, а строчка - просто последовательность букв. В строчке можно опечататься, её сложнее переименовать или найти её использование в приложении.
+ еще как минимум иде будет подсказывать)
никто не отменял опечатки и дебага час где ошибка
Если я верно понял, то по сути это одно и то же получается - в консоль ошибку выводит, если через мапы не находит экшн, например, а через константу ошибку, что не нашел такой константы. И по факту разницы нет выходит, только константами запись длиньше? И так и так - кому как удобней?
Ошибка с константой будет получена на этапе написания кода, а со строчкой - выполнения
Об этом не подумал... Блин, так не хочется громоздить конструкцию такую длинную как у констант:) Используются они в коде после объявления также: в логике this.CONST_FROM_STORE, а в шаблоне просто CONST_FROM_STORE?
Во-первых, есть все также мапы. Во-вторых, если используете константу для обращения к полю объекта, то нужно использовать выражение [], а не точку
import { FETCH_DATA } from 'store/actions' export default { methods: { ...mapActions({ fetchData: FETCH_DATA, }) }, created() { this.fetchData() } }
Спасибо. Буду пробовать завтра значит:)
В маленьком приложении, особенно если вы один, от констант, наверное, будет больше сложностей, чем профита. Шторм отлично подсказывает и со строчками. Так что разве что для своего удовлетворения от кода)
Обсуждают сегодня