uniapp 使用vue3 (第一篇vuex(弃用), 改用pinia)

记录日常开发的总结,包含vuex,全局方法,http请求,组件等等

一:创建vuex目录

目录结构

store
  -----|    modules
       |--------------------|   app.js
       |--------------------|	im.js
  -----|    index.js

index.js 内容

import app from ./modules/app.js
import im from ./modules/im.js
// #ifndef VUE3
import Vue from vue
import Vuex from vuex
Vue.use(Vuex)

export default new Vuex.Store({
          
   
	modules: {
          
   
		app,
		im
	}
})
// #endif

// #ifdef VUE3
import {
          
   
	createStore
} from "vuex";
const store = createStore({
          
   
	modules: {
          
   
		app
	},
});
export default store;
// #endif

app.js

const state = {
          
   
	test: 
}

const mutations = {
          
   
	UPDTEST(state, text) {
          
   
		state.test = text
	}
}

const actions = {
          
   
	setTest({
           
    
		commit
	}, text) {
          
   
		commit(UPDTEST, text)
	}
}

const getters = {
          
   
	test: state => state.test
}

export default {
          
   
	namespaced: true,
	state,
	getters,
	mutations,
	actions
}

二:在main.js挂载

import App from ./App
import store from "./store";
import {
          
   
	createSSRApp
} from vue
export function createApp() {
          
   
	const app = createSSRApp(App)
	app.use(store);
	return {
          
   
		app
	}
}

三:在文件中具体使用

刚接触vue3, 欢迎各位大佬提供类似于vue2中的mapGetters语法

<script setup>
	import {
          
    computed } from vue
	import {
          
    useStore } from vuex
	const store = useStore()
	const getShowTask = computed(() => {
          
   
		return store.getters[app/test];
	})
</script>
经验分享 程序员 微信小程序 职场和发展