Если в общем, то в инпуте вы вводите то ,что вам нужно делать, и из инпута эмитите в родителя данные через this.$emit('someHandler', data_from_v_model). А в App Вам нужно поставить на компонент слушатель @someHandler = "someListener" и в этом метоже уже осуществлять обработку.
Во-первых, итерировать массивы через for-in = это далеко не самая длучшая идея. Для масссивов лучше использовать for-of. Во-вторых, это должно быть как-то так:
for(const bread of breadProduct){
if (bread.id === id1) {
//делаете то ,что вам нужно
}
}
регулряные выражения не строятся на абстрактном - нужно понимать, на какой шаблон вы ориентируетесь- и тогда подбирать его, напрмиер на площадке regex101.
В абстракции, нужно создать шаблон, который будет опираться на последовательноси буквоцифр и разделителей. /[a-zA-Z]{2}-[0-9]{3}-[0-9]-[a-zA-Z]/gm
Плясать от такого
Однозначно нужно проверять объект msg - в него не записывается то, что ты ожидаешь, в тот момент, когда ты ожидаешь, что там есть данные. Если запись идет из запроса - проверяй асинхронность, если она есть.
И каждый файл Вы делите ещё на отдельнона геттеры, мутации, экшены, стэйт и импорты остаются в индексе.
причем внутри теттеры, мутации и экшены так же разделены отдельно, в результате в корне каждой папки находится свой индекс, в который экспортируются все функции. Немного запутано, в первый раз, но потом привыкаете и очень удобно.
wakenby, правильные по определению оба варианта, все завиит от конкретной ситуации. Кстати, попробуйте копать в сторону модульности - так ,во-первых, удобнее, а во-вторых проще сразу находить нужные геттеры, мутации, экшены. Обычно делают такую структуры:
Если нужны какие пояснения -пишите, не стесняйтесь.