и посмотреть медиа
Frontend Interview - JS HTML CSS
и посмотреть медиа
Channel for preparing for frontend interviews: JavaScript, HTML, CSS. Practical tasks and analyses.
Channel for preparing for frontend interviews: JavaScript, HTML, CSS. Practical tasks and analyses.
The resource is dedicated to preparing for frontend developer interviews. Contains questions, tests and answers on JavaScript, HTML and CSS. Helps systematize knowledge and confidently pass the interview.
Что такое mutations и actions в vuex? Который является официальной библиотекой для управления состоянием в приложениях Vue.js, mutations (мутации) и actions (действия) играют ключевые роли в управлении состоянием. Они помогают обеспечивать предсказуемость изменения состояния и организовывают логику приложения. Mutations (Мутации) Это единственный способ изменить состояние в Vuex. Каждая мутация имеет тип и обработчик. Обработчик мутации получает состояние как первый аргумент, и дополнительный аргумент в качестве полезной нагрузки (payload), который можно использовать для передачи данных в мутацию. Мутации должны быть синхронными, чтобы изменения состояния можно было легко отслеживать. Это помогает делать отладку и логгирование более предсказуемыми. import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { count: 0 }, mutations: { increment(state) { state.count++; }, incrementBy(state, payload) { state.count += payload.amount; } } }); Actions (Действия) Действия используются для выполнения асинхронных операций или сложной бизнес-логики перед вызовом мутаций. Действия могут содержать произвольную асинхронную логику, такие как API-запросы, и затем вызывать мутации для изменения состояния. Действия вызываются с помощью метода dispatch и могут возвращать промисы, что полезно для обработки цепочек асинхронных операций. import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { count: 0 }, mutations: { increment(state) { state.count++; } }, actions: { incrementAsync({ commit }) { setTimeout(() => { commit('increment'); }, 1000); }, incrementByAsync({ commit }, payload) { setTimeout(() => { commit('incrementBy', payload); }, 1000); } } }); Взаимодействие между Mutations и Actions: Mutations Синхронно изменяют состояние. Actions Могут быть асинхронными и обычно вызывают мутации для изменения состояния. Пример взаимодействия // store.js import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { message: '' }, mutations: { setMessage(state, message) { state.message = message; } }, actions: { fetchMessage({ commit }) { setTimeout(() => { const message = 'Hello from async action!'; commit('setMessage', message); }, 2000); } } }); Компонент {{ message }} Load Message import { mapState, mapActions } from 'vuex'; export default { computed: { ...mapState(['message']) }, methods: { ...mapActions(['fetchMessage']), loadMessage() { this.fetchMessage(); } } }; 👉 @frontendInterview
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!