const [errors, setErrors] = useState({
name: '',
teleph: '',
email: '',
});
// когда нужно устанавливается одну ошибку
setErrors({ ...errors, [name]: value })
// где name - имя ключа объекта с ошибками, value - значение ошибки
HTTPS обязателен для работы с аудио или видео через JS. Подойдет любой валидный SSL-сертификат, в том числе и от Let`s Encrypt. Насчет "самодельных" сертификатов сказать не могу - не пробовал.
Мне кажется тут все просто, это кеш. У кого-то из пользователей кеш уже обновился, погрузил ваши правки и нормально работает. А у кого-то ещё нет. Можно подождать, можно заставить кеш обновиться у всех пользователей.
Как правильно? А так, как вам удобнее. Кому то удобнее все в одном файле держать. Мне удобнее разбить на логические части: переменные (variables), миксины (mixins), шрифты (fonts). Однозначного ответа тут не может быть.
Если вас беспокоит вопрос производительности - не беспокойтесь, разницы нет.
Очень просто. Когда пользователь авторизовался, с сервера в ответе должна прилетать его роль. Сохраняешь роль в сторе и в зависимости от роли перенаправляешь пользователя на нужный роут. Роль должна проверяться в одном из верхне-уровневых компонентов - например, в общем layout (шаблоне).
Это может принести вам как пользу, так и вред. Зависит от того, как преподносится материал в видео, как его объясняет автор. В целом учиться по видео, повторяя написанный код это неплохо. Но недостаточно, чтобы стать программистом.
Страница товара у вас физически будет одна. Реакт это про работу с состоянием. Id товара это часть состояния, меняется айди, меняется состояние, отправляется запрос в бд, происходит обновление данных на странице.