Anton
Новички обычно пытаются изменить значение входного параметра в двух случаях:
Если параметр нужен лишь для передачи потомку начального значения, после чего планируется использовать эту переменную как локальную.
Если значению, которое передаётся как параметр, требуется дальнейшая обработка.
Правильное решение этих задач следующее:
Объявить локальную переменную, которая принимает значение входного параметра при инициализации:
Sunlive
ну да, чот бы не мутировать проп, но такое же поведение можно добиться тоже через компьютед, короче как удобнее
Anton
я ж его не изменяю, а просто сохраняю и использую
Sunlive
смысла в переприсваивании нету
Anton
Дмитрий
А у тебя длина этого листа не может изменяться? Один раз только приходит?
Дмитрий
Сомневаюсь чёт )
Anton
это днинна листа всех артиклов. Она будет изменяться только при обновлении страници
Anton
динамически нет
Дмитрий
Хм, ну ладно. Все равно, в твоём случае ты делаешь лишнюю работу
Дмитрий
Переприсваивая
Anton
уже убрал, спасибо
Sunlive
как стейт почистить без перезагрузки страницы? я чет не могу понять
Дмитрий
Что в твоём понимании почистить?
Sunlive
initial state
Sunlive
есть такое
Sunlive
resetState(state) {
Object.assign(state, initialState);
}
Sunlive
но я хз, откуда этот initialState берется
Sunlive
или это обьект вьюкса?
Дмитрий
Да нет там такого
Дмитрий
Ты его сам по идее пишешь
Дмитрий
Когда стор инициализируешь const initialState = {foo: 1, bar: 2};
Дмитрий
const store = new vuex.store(state: initialState, actions, mutations);
Sunlive
у меня модулей дохера
Дмитрий
Что нить вроде того по идее
Sunlive
не прокатит
Sunlive
буду гуглить еще, пока остановлюсь на рефреше после логаута
1337
Michael
Всем привет. А кто-то юзает weex?
1337
обработку ошибок засунул в сам axios
1337
Sunlive
vuex?
не, это для мобилок
Tair
Tair
а если еще и secure, то только через https
Николай
Всем хорошего времечка, Уважаемые знатоки, внимание вопрос))). Буду благодарен за помощь. Vue недавно начал юзать:
Николай
<v-select
v-on:change="getAllTeams"
:items="allLeagues"
v-model="selectLeague"
label="Лига"
item-text = "name"
item-value = "slug"
return-object
single-line
selection
cache-items
auto
prepend-icon="brightness_auto"
hide-details
autocomplete
></v-select>
Николай
при выборе срабатывает getAllTeams
Николай
но на момент ее выполнения при первом клике еще не успевает сформироваться selectLeague.name
Николай
как правильно это выполнить, без костылей?
Николай
Заранее спасибо!
Andy
аналогичная проблема у меня бывает с vue-multiselect, может помочь, конечно, вытаскивание selectLeague.name в $nextTick()
Andy
но! разве при ивенте change в функцию не передается новое значение? в любых плагинах так обычно делают
Олег
Николай
передается, но при первом селекте просто не успевает
Николай
Николай
т.е. первый селект undefined, второй уже все норм
Николай
var v = this;
setTimeout(function() {
// console.log(v.selectLeague,v.selectLeague.slug)
}, 1000);
Николай
вот так проверял
1337
тут вроде про твою проблему
1337
еще можно попробовать кастомный эвент сделать
1337
и его слушать
Николай
1337
вместо on change
Олег
Привет всем. Не могу понять поведение Vue. Свойство элементов data не обновляються при вызове метода если нет тега с данным элементом. Т.е. пока я в шаблоне не пропишу тег {{нужный элемент}} он в date не обновляется по событию onclick. Или так и должно быть?
Roman
Олег
<label class="input-label" for="name" :style="labelStyle">What do you love?</label>
<input @click="showLabel" type="search" name="search" placeholder="What do you love?" maxlength="200" value="">
Олег
data () {
return {
labelStyle:{
opacity : 0
}
}
}
Олег
methods: {
showLabel(){
this.labelStyle['opacity']=1
}
Олег
если где нибудь в шаблоне добавить {{labelStyle}} то работает, иначе нет
Tair
хм.. а что во вью так можно стиль навешивать?
Олег
Tair
круто ))
Tair
не знал
Николай
Roman
Олег
Roman
Николай
jsfiddle может попробуете показать?
getAllTeams:function () {
var v = this;
Vue.nextTick(function () {
console.log(v.selectLeague.slug)
axios.get('/getTeamsBySlug/'+v.selectLeague.slug)
.then(response=>{
this.allTeams = response.data
})
.catch(function (error) {
return error;
});
}) Во так робит, тока не забываем импортнуть сам Vue
Tair
Tair
господа, давайте уже фиддл
Roman
Roman