Компоненты являются элементами.Они похожи на блоки функциональности и макета, которые вы использовали бы для создания приложения или пользовательского интерфейса.Компоненты могут быть расширены, при этом используются аспекты исходного компонента, в то же время вы можете добавлять другие функции.
Подобно расширению существующего компонента, вы можете использовать миксин, который очень похож на компонент, который вы бырасширить, но добавляет функциональность к существующему компоненту.
Плагин добавляет функциональность верхнего уровня, к которой может получить доступ любой компонент.
Использование зависит от того, что вы пытаетесьдостигать.Такие вещи, как маршруты и управление состоянием, хорошо подходят для плагина, потому что он позволяет вам воздействовать на изменения в приложении и прослушивать их, не настраивая реквизиты или слушателей.Но вы не будете использовать их для функциональности, связанной с компонентами, потому что они будут загрязнять ваше приложение.
Mixins - спорная особенность, которую некоторые утверждают, не следует использовать.Идея состоит в том, что Компонентное обертывание или Компоненты высшего порядка могут быть реализованы более надежным способом.более подробная информация здесь: (https://reactjs.org/blog/2016/07/13/mixins-considered-harmful.html)
Компоненты имеют основополагающее значение для создания приложения vue, поэтому их нельзя обойти, но есть способы получить от них больше. Vue позволяет использоватьСлоты, которые помогают охватить некоторые функции, которые сообщество реагирования предпочитает компонентам более высокого порядка.
Если вы относительно новичок в Vue, я бы посоветовал вам не использовать миксины, не используйте плагиныдо и тратить время на реализацию функциональности с использованием компонентов, а если вы создаете многократно используемые компоненты, используйте области видимости. https://vuejs.org/v2/guide/components-slots.html