ну вот логика на клик сделать то-се - делается в компоненте?
Вообще, сейчас в модных фреймворках принято разделять компоненты на "умные" и "глупые".
В умном ты рулишь запросами, работаешь с данными.
Глупым компонентам передаешь данные для отрисовки и в случае с Vue, отправляешь события из них события.
Судя по твоему описанию, ты получаешь начальное состояние в "умном" родительском компоненте, запихиваешь его в data, а по данным из data список "глупых" детей.
В дети, через пропсы, передаешь состояние ребенка.
Когда ребенок меняет состояние (чекбокс меняется), emit'ишь событие.
Это событие отлавливаешь в "умном" родительском компоненте и дергаешь метод, который отправлет запрос на сервер.
Сервер тебе присылает новое состояние. Обновляешь состояние в "умном" родительском компоненте и Vue сам магическим образом перерисовывает тебе ребенка.
Это так, в общем. Могут быть всякие поправки и отступления.