Стрелочные функции не создают собственный контекст this, а используют значение this окружающего контекста.
computed: {
incomingActive() {
this.messages.forEach((message) => {
alert('user_name is: ' + this.user);
/* ... */
return incomingActive;
});
},
},
this.options.series = null
, то сам чарт тут не причем. Получается у вас где-то не записывается значение в пропс или в каком-то другом месте ошибка (что сложно понять, ибо вы не привели пример).this.$parent
хотите поменять эти самые пропсы, чтобы они обновились и прокинулись опять же в этот компонент? О_о Вам не кажется, что вы делаете что-то не так?this.options.series[0]
будет равен instance.series[0]
). Я сам сначала все в график кидал через пропсы, чтоб компонент типа универсальный был. В итоге когда функционал вырос в несколько раз, все это стало очень сложно хендлить, плюс пошли просадки по памяти....mapState({
news: state => state.news,
});
this.$store.state.news
const actions = {
async fetchNews({ commit }) {
// Стреляете запрос в нужный эндпоинт
const { data } = await axios.get('http://your.api.endpoint');
if (data.result) {
// Записываете новости в стору с помощью мутации
commit(SET_NEWS, data.data);
} else {
// Обрабатываете ошибку, если не удалось получить новости
}
return data;
},
};
v-if="news.length > 0"
. v-for="i in formCounter"
выводите блоки с этими тремя инпутами и кнопкой.:name="`address-${i}`"
const baseURL = process.env.API_BASE_URL || https://defaultValue.com;
API_BASE_URL=http://example.com node index.js
this.newDeal = Object.assign({}, this.newDealDefaultState);
methods: {
toggle() {
this.isActive = !this.isActive;
}
}
toggle: () => {
на метод toggle() {
и тогда все заработает.methods: {
logout() {
localStorage.removeItem('token');
this.$store.commit('changeUserData', {});
this.$store.commit('changeAuth', false);
}
}
logout: () => {
logout() {
Стрелочные функции не создают собственный контекст this, а используют значение this окружающего контекста.
Vue.use()
в зависимости от ширины экрана — это костыль. Подключать плагин вы должны в любом случае, а уже потом управлять его инициализацией и разрушением инстанса в какой-нибудь отдельной функции, которую вы подвяжете на resize
эвент.window.innerWidth
. sendMessage()
, внутри которого бы проверял пол юзера и совершал нужные действия. Но тут уже вам надо будет подумать, где и как вы будете хранить пол юзера.<textarea v-on:keypress.enter.prevent="input.length && sendMessage()" id="chat_msg" placeholder="" v-model="input"></textarea>
methods: {
sendMessage() {
if (this.data.isMale) {
// do something for men
} else {
// do something for women
}
},
},
<textarea
@keypress.enter.prevent="input.length && newMessage()"
id="chat_msg"
placeholder=""
v-model="input"
>
</textarea>
isActive
. Ну и кстати, для разворачивания табов не обязательно использовать какие-то data-
атрибуты. Ну и плюс в темплейте у тебя верстка неполная какая-то, тэги не закрыты, например.<template>
<div>
<li v-for="(item, index) in itemsVisibility"
:data-rel="`ex-${index}`"
@click="expand(index)"></li>
<div v-for="(item, index) in itemsVisibility"
v-show="itemsVisibility[index]"
:class="{ active: itemsVisibility[index] }"
:data-rel="`ex-${index}`"
@mouseleave="expand(index)"></div>
</div>
</template>
<script>
export default {
data() {
return {
itemsVisibility: [
true, // первый таб по дефолту открыт
false,
false,
],
};
},
methods: {
expand(index) {
this.itemsVisibility[index] = !this.itemsVisibility[index];
},
},
};
</script>
watch: {
'$route.params.list_slug': function (listSlug) {
console.log(listSlug); // выводим новое значение параметра роута
this.doSomething(); // выполняете что нужно
},
},
watch: {
'$route': function (to, from) {
// выполняем что-либо, когда роут меняется
},
},