MKKM MMM, да, тут скорее всего при изменении только целиком перерисовывать. Производительность правда от бога будет :) Хотя, вопрос кол-ва маркеров-кластеров.
Вы данные, которые эмитите, берете не из this.product_data, а ставите туда компьютед, в котором, в свою очередь, считаете базу (например, цена) + элемент массива вариаций по индексу активной вариации, записанной в отдельную переменную.
Ну так вы не то делаете потому что :) Вы по выбору просто записываете отсортированный по ключам массив вариаций в переменную, в чем смысла нет, а потому у вас вес трижды выводится из всех вариаций сразу.
Вам через @select нужно записывать индекс или объект текущей выбранной опции в отдельную переменную, а затем уже оперировать ей.
То есть либо this.currentVariation = index (при @select) и затем computed getTotalWeight какой-нибудь с содержимым return variations?.[index]?.price ?? '' вывести в шаблоне.
Либо сразу записывать весь объект выбранной опции в переменную и затем из нее рендерить в шаблоне что нужно.
What have you done, да, я пишу под Vue и там, чтобы снизить градус дублирования в таких ситуациях, либо выношу дублирующийся блок в компонент, чтобы не править его в двух местах в случае чего, либо использую условный рендеринг, чтобы убрать дублирование в dom'е (ну или и то и то).
ivan0512, а что должно пугать? Vue вы использовать не обязаны - подняли Nuxt из коробки, создали пару страниц с расширением .vue, а дальше можно про него забыть. Серверный рендеринг для такого сайта вписывается отлично и исключительной связи с "проектами с логикой" тут никакой нет.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
По остальному - я не вижу структуры вашего приложения, поэтому исхожу из того, что понял :)
Если абстрагироваться и решать лишь вопрос передачи класса из дочки в родителя, то:
В дочке:
В родителе:
Ну и https://vuejs.org/guide/components/events.html внимательно пересмотрите.