-
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
00-intro - настройка репозитория #1
Conversation
Спасибо за отправленный пулриквест, теперь @ShGKme должен запустить тесты. |
Добавляю преподавателя (@ShGKme) для код-ревью. |
const FormatDate = defineComponent({ | ||
name: 'format-date', |
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.
Имя обычно дают также в PascalCase
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.
Приучили до этого на протяжении 4х лет к кебаб кейсу в имени компонента, чтоб совпадало с именем селектра рутового элемента компонента, т.к. разделение шаблона на компоненты в основном происходило по БЭМ. Объяснялось тем, что в итоге такой компонент легче найти, как визуально в испекторе, так и в IDE по поиску (типо выдернул из инспектора копипастом, вставил в IDE, всё нашлось)
Так что тут наверно скорее предпочтения отдельно взятой организации, не сказать что это обычно в паскаль кейсе или в кебаб кейсе.
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.
В шаблоне компонент действительно часто используют в kebab-case
. Но не в JS части, не в имени.
https://vuejs.org/style-guide/rules-strongly-recommended.html#component-name-casing-in-js-jsx
props: { | ||
meetup: { | ||
type: Object, | ||
default: { | ||
// - `title` — заголовок митапа | ||
// - `image` — ссылка на изображение обложки митапа | ||
// - `description` — описание митапа | ||
// - `agenda` — массив с программой митапа | ||
// - `organizer` — организатор митапа | ||
// - `place` — место проведения митапа | ||
// - `date` — дата проведения митапа | ||
}, | ||
}, |
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.
Если компонент не имеет смысла или не функционирует без пропса - он должен быть явно описан, как обязательный через required: true
. В противном случае либо компонент просто не может нормально работать, либо выводит пустые блоки.
Злоупотребление ?.
оператором не решает эту проблему, а скорее усугубляет, так как прячет настоящую ошибку за выводом пустых элементов.
Не может потребоваться выводить большой блок со страницей митапа, где все элементы присутствуют, но пустые. Вместо этого вообще не должен выводиться компонент MeetupView
в отсутствии данных, либо должна быть явная проверка их наличия и обработка случая их отсутствия.
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.
Также у мутабельного типа пропса не должен быть непосредственно объект (массив) в качестве значения по умолчанию. Так у всех экземпляров этого класса по умолчанию в пропсе будет лежать ссылка на один и тот же объект. Вместо этого должна быть функция создания такого объекта () => ({})
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.
Не смотря на предыдущий комментарий, значение {}
здесь в принципе не корректно в качестве значения по умолчанию. {}
нельзя считать корректным объектом с данными митапа, это не частный случай данных.
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.
Аналогично в 03-components/50-weather-components
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.
Это вредная привычка, потому что бэкендеры на работе постоянно меняют выдачу данных в API, имена полей структуру и прочее, начинает надойдать это, ну и обязательное условие чтоб компонент выводился и не ломался и не скрывался при такой смене данных. Приходится вот таким образом поступать постоянно.
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.
Приму, но обратите внимание на комментарии на будущее.
Ок, буду иметь ввиду. |
No description provided.