在Vue 3中,可以使用Vuex來管理應用的狀態(tài)。以下是一個簡單的示例:
- 確保已經(jīng)安裝了Vue和Vuex:
npm install -g @vue/cli
vue create my-app
cd my-app
vue add vuex
- 在
src
目錄下創(chuàng)建一個名為store
的文件夾,并在其中創(chuàng)建一個名為index.js
的文件,用于定義Vuex store:
// src/store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
count: 0,
},
mutations: {
incrementCount(state) {
state.count++
},
decrementCount(state) {
state.count--
}
},
actions: {
incrementCount({ commit }) {
commit('incrementCount')
},
decrementCount({ commit }) {
commit('decrementCount')
}
}
})
- 在
src
目錄下創(chuàng)建一個名為components
的文件夾,并在其中創(chuàng)建一個名為MyComponent.vue
的文件,用于使用Vuex狀態(tài):
<!-- src/components/MyComponent.vue -->
<template>
<div>
<p>Count: {{ count }}</p>
<button @click="incrementCount">Increment</button>
<button @click="decrementCount">Decrement</button>
</div>
</template>
<script>
import { mapState, computed } from 'vue'
export default {
setup() {
const count = computed(() => this.$store.state.count)
const incrementCount = () => this.$store.dispatch('incrementCount')
const decrementCount = () => this.$store.dispatch('decrementCount')
return {
count,
incrementCount,
decrementCount,
}
}
}
</script>
- 在需要使用狀態(tài)的地方引入并使用Vuex store:
<!-- src/App.vue -->
<template>
<div id="app">
<h1>{{ message }}</h1>
<button @click="incrementMessage">Increment Message</button>
<button @click="decrementMessage">Decrement Message</button>
</div>
</template>
<script>
import { ref } from 'vue'
import { useStore } from 'vuex'
export default {
setup() {
const message = ref('Hello, world!')
const store = useStore((state) => (next) => (...args) => next(Object.assign({}, state, args)))
const count = useSelector((state) => state.count)
return {
message,
count,
setMessage: (newMessage) => {
message.value = newMessage
},
setCount: (newCount) => {
store.commit('incrementCount')
store.commit('decrementCount')
},
}
}
}
</script>
在這個示例中,我們創(chuàng)建了一個名為my-app
的項目,并使用Vue CLI創(chuàng)建了一個新的Vue項目。然后,我們導入了Vuex庫,并創(chuàng)建了一個名為store
的Vuex store。在這個store中,我們定義了一個名為count
的狀態(tài),以及兩個mutations和actions來操作這個狀態(tài)。最后,我們在MyComponent.vue
中使用了這個store,通過mapState
將狀態(tài)映射到組件的模板上,并通過computed
計算器來顯示當前計數(shù)。
本文內容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。