должен быть более лаконичный способ, чем плодить такие переменные
Смотрите, где какие куски кода есть похожие, оформляете их в отдельный компонент. А что у них разного - будет параметрами этого компонента.
Или это считается нормальной практикой?
Да, считается. У говнокодеров.