Как понять что нужно разделять компонент на новые компоненты (vue)?
=====================================================================

 К примеру, есть компонент Button и у меня есть необходимость как-то её стилизовать, что бы она стала большой, я же не должен создавать новый компонент BigButton и в нём использовать Button? А логичнее вроде как будет просто пропсом указать что-то вроде size="big" и в Button либо подкрутить стили, либо сделать чёт другое, что требуется.  

  

То есть, в моём понимание, смысл создавать другой компонент (BigButton), используя имеющийся (Button) есть тогда, когда нам нужно только добавить ему какого-то js функционала? Хотя тут можно по сути использовать тот же подход с пропсами и вот тут всё же непонятен немного момент, а когда же создавать новый компонент, а когда просто добавлять разную логику в действующий в зависимости от поступающих пропсов? 

 Я бы сделал пропсом скорее всего. Например, `size="large | middle | small"`  

Но как таковых жестких правил нету на сколько мне известно. 

 Если общего функционала больше (условно) половины кода - один компонент. Если меньше - два компонента и один миксин. 

 Золотое правило. Если поймал себя на том, что копипастишь больше 6-7 строк - выноси в отдельную функцию:)  

  

То есть, если эта одна кнопка - класс повесил и забыл. Если ты понимаешь, что именно такую кнопку, с какой то определенной логикой надо где-то использовать еще - то в компонент.  

  

Но тут я плохой советчик. Я почти никогда не делал такие компоненты. Обходился классами. А вот компоненты вроде Header, Footer, Cooments (комментарии) - делаю всегда.