vue3.x使用vuex
在vue3.x项目中需使用vuex4.x版本;安装直接下载/CDNhttps://unpkg.com/vuexnpm /cnpm /yarnnpm install vuex@next --savecnpm install vuex@next --saveyarn add vuex@next --save项目中使用在根目录下创建store文件夹,在store文件夹下创建index.js文件,在ind
·
在vue3.x项目中需使用vuex4.x版本;
安装
直接下载/CDN
https://unpkg.com/vuex
npm /cnpm /yarn
npm install vuex@next --save
cnpm install vuex@next --save
yarn add vuex@next --save
项目中使用
在根目录下创建store文件夹,在store文件夹下创建index.js文件,在index.js文件中书写代码,与vue2.0中使用的vuex相差不大,直接上代码:
import { createStore } from 'vuex'
export default createStore({
state: {
count: 0
},
mutations: {
// 进行数据更新,改变数据状态
countType(state, action){
state.count = state.count + action.payload
}
},
actions: {
//执行动作,数据请求
addCount({commit}){
fetch('../data.json')
.then(function(response) {
return response.json();
})
.then(function(myJson) {
let action = {
type: 'countType',
payload: myJson.text
}
commit(action)
});
}
},
getters: {
// 获取到最终的数据结果
getCount(state){
return state.count
}
}
})
在main.js中
import store from './store'
createApp(App).use(store).mount('#app')
在组件中
<template>
<div class="container">
<button @click="add">{{data.count}}</button>
</div>
</template>
import { reactive } from 'vue'
import { useStore } from 'vuex'
export default {
setup(){
let store = useStore()
let data = reactive({
count: 0
})
onMounted(() => {
store.dispatch('addCount')
})
let add = () => {
store.dispatch('addCount')
data.count = data.count = store.getters.getCount
}
return{
data,
add
}
}
}
与vue2.x的差异
在store文件夹中
vue2.x
vue3.x
在main.js中
vue2.x
vue3.x
更多推荐
已为社区贡献4条内容
所有评论(0)