色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue 按狀 vuex

林玟書2年前7瀏覽0評論

Vue.js 是一款非常流行的前端框架,它在大型項目開發中具有很好的性能表現。Vue.js 本身的數據交互方式局限于組件內部,如果需要跨組件通信,我們可以使用一個名為 Vuex 的插件來解決。

在使用 Vuex 之前,我們需要了解一些基礎概念。首先是“State”,即狀態對象,用來存放數據。一個 Vue 組件必須通過 getters 或 actions 訪問該狀態中的數據。其次是“Getter”,即用于訪問狀態數據的方法。最后是“Mutation”,即用于更改狀態數據的方法。

// state 應該是適當的內部共享數據
const state = {
price: 100
}
// getter 用來獲取 state 中的值
const getters = {
getPrice: state =>state.price
}
// mutation 用來更改 state 的值
const mutations = {
addPrice: state =>state.price++
}
export default new Vuex.Store({
state,
getters,
mutations
})

在使用 state 動態更改應用狀態時,由于數據操作原則,只能使用 mutation。通過 Vuex 提供的一個名為“commit”函數來調用 mutation。

// 應用中的組件
methods: {
incrementPrice () {
this.$store.commit('addPrice')
}
}
// mutation 中的方法
const mutations = {
addPrice: state =>state.price++
}

Vuex 提供了一個名為“Action”的概念,它可以使得數據更改過程更直觀和可控。Action 是一個類似于 Mutation 的函數,不過它們的不同點在于 Action 可以處理異步操作,例如調用 API 或者計算定時器時間。

// action 用于發送異步請求
const actions = {
getServerData ({ commit }) {
fetch('http://api.com/getData')
.then(res =>res.json())
.then(data =>{
commit('setData', data)
})
}
}
// mutation 中的方法
const mutations = {
setData (state, data) {
state.data = data
}
}

使用 Vuex 可以讓我們更加精細地操作應用程序數據,這種方式也體現了 Vue.js 的響應式思想。在實際項目中,我們應該盡量避免直接操作 Vuex 的數據,而應該使用 Vuex 監聽數據狀態的變化,方便追蹤數據變化的歷史記錄,并且更符合 Vue.js 的設計理念。