Alex
У поля формы в-модел
Alex
Синхронизируется значение с тем что там
Alex
Вот в то значение можно присвоить пустую строку
Alex
Если у поля v-model=“field” то в коде надо this.field = ‘’
И поле сбросится
Max
сейчас покажу код)
Max
<template lang="pug">
form.form_companies(@submit.prevent="addCompany(model)")
input(type="text" placeholder="имя компании" v-model.lazy="model.name")
button(type="sybmit" @click="clearForm") добавить копанию
</template>
Max
methods: {
...mapActions('companies', {
addCompany: 'addCompany'
})
}
Max
data() {
return {
model: {}
};
},
Alex
this.model.name = ‘’
Max
в сторе или в компоненте?)
Max
думаю что в компоненте
Alex
А на сабмите вызывать не экшн сразу, а метод в котором уже экшн будет и then
Max
так проще, нафига промис)
Max
или я не прав?)
Max
я просто подкипел немного уже)))
Alex
Ну а зачем промисы обычно?)
Max
для асинхронности)
Ivan
let nameCompany = this.model;
this.model = {};
this.addCompany(nameCompany);
ты же связь передаешь, правильнее так
let nameCompany = {...this.model};
this.model = {};
this.addCompany(nameCompany);
тогда связь рвется и как бы хорошо
Max
это мне нужно промис создать, в нём акшн совершить, в then поля очистить, а так вроде короче)
Ivan
но с промисом правильнее, можно ошибку обработать, а так не обработаешь ошибку если что вдруг пошло не так
Max
Ivan
или у сервара 500 ошибка и он не принял запрос, а front думает что все впоряде
Ivan
ошибки случаются чаще, чем мы думаем, и надо их обрабатывать как бы не было лениво
Max
Max
я не пойму)
Max
add(model) {
return new Promise((res, rej) => {
this.addCompany(model);
this.model = {};
res();
}).then();
}
Ivan
можно и async await - если болше нравится
Max
я не понимаю где режектить промис)))
Ivan
Max
Ivan
add(model) {
return new Promise((res, rej) => {
this.addCompany(model);
res();
}).then(() => {
this.model = {};
}).catch(e => {console.info('ERROR: ', e););
}
Max
да у меня отлов ошибки бэка в сторе)
Max
addCompany(store, data) {
// const company = { company: { name: data.name } };
const company = { company: data };
store.commit('addCompany', company);
// let myToken = window.localStorage.getItem('gyc');
// Vue.http
// .post(addCompanyAPI, company, {
// headers: { Authorization: Bearer ${myToken} }
// })
// .then(
// res => {
// let statusCode = res.status;
// if (statusCode === 200 || statusCode === 201 || status === 204) {
// console.log(res);
// store.commit('addCompany', company);
// // }
// },
// err => console.log(err)
// );
// .catch(err => {
// console.log(err);
// alert('компания не добавилась');
// });
Max
алерт вместо модалки пока стоит
Alex
Евгений Фомин в новом выпуске Frontend Weekend рассказал про Vue.js и о том, почему разработчики уходят из backend’а во frontend – https://soundcloud.com/frontend-weekend/fw-45
Roman Kichatkin
Привет всем!
Как в vue перерисовать компонент по требованию => реализовать кнопку "обновить"?
Данные рисуются из параметра, клонировать его и присвоить к нему склонированное значение ни к чему ни привело.
Alex
Ivan
Alex
Roman Kichatkin
Задача такая
есть список, Удалил из DOM один из элементов, нажал кнопку "Обновить" и DOM должен перерисоваться из данных
Alex
Андрей
Roman Kichatkin
Как ты удаляешь?
Удаляю из DevTools браузера, например, данные при этом не трогая
Андрей
Alex
Roman Kichatkin
Тогда подскажите, как обновить данные, присвоив им те же значения так, чтобы vue понял, что данные поменялись и перерисовал DOM
Alex
Поменять != оставить те же значения)))
Alex
Вы лучше расскажите что делаете, так будет понятнее
Андрей
Alex
Пересоздай компонент.
Ну это же костыль, надо лишь дождаться когда подробно расскажут и понятно будет как нормально решать
Roman Kichatkin
Андрей
Андрей
Как?
Поменяй key у компонента.
Roman Kichatkin
Фишка в том, что watch возвращает false при сравнении new и old значений, подозреваю, что должен перерисовать
Alex
А что там должен перерисовать?
Roman Kichatkin
Дочерние компоненты, которые рисуются в из этой переменной - объекта
Leonid
Roman Kichatkin
watch: {
employees: function (newValue, old) {
console.log(newValue == old);
}
},
Artem
какова цель перерисовки компонента, если данные не изменяются?
Roman Kichatkin
Такая задача, для тестового задания, я понятия не имею, зачем им это нужно 😀
Roman Kichatkin
Дословно из задания
*Функция обновления пользователей нужна для того чтобы в случае если мы как-то из html удалили карточку, не перезагружая страницу перерисовать весь список.
Sunlive
'
Sunlive
это вью сам сделает
Sunlive
если ты удаляешь правильно
Leonid
Он же реактивный.. ептить
Sunlive
🙈
Roman Kichatkin
Leonid
Он перерисует список сам
Roman Kichatkin
Да, в data
Sunlive
Да, в data
о реактивности вью что то слышал?
Sunlive
он следит за данными в дата
Sunlive
если там они меняются
Roman Kichatkin
неужели data перепишется, если я из DOM удалю элемент?
Sunlive
он сам вызывает повторный рендер
Roman Kichatkin
Андрей