在uni-app使用vue3使用vuex

在uni-app使用vue3使用vuex

1.在项目目录中新建一个store目录,并且新建一个index.js文件

js 复制代码
import { createStore } from 'vuex';
 
export default createStore({
  //数据,相当于data
  state: {
    count:1,
    list: [
      {name: '测试1', value: 'test1'},
      {name: '测试2', value: 'test2'},
      {name: '测试3', value: 'test3'},
    ],
  },
  getters: {
    
  },
  //里面定义方法,操作state方发
  mutations: {
    add(state){
			state.count++
		}
  },
  // 操作异步操作mutation
  actions: {
    
  },
  modules: {
    
  },
})

2.配置main.js文件

js 复制代码
import App from './App'
import store from './store';  //加上这里
// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'

const app = new Vue({
  ...App
})
app.$mount()
// #endif

// #ifdef VUE3
import uviewPlus from '@/uni_modules/uview-plus'
import { createSSRApp } from 'vue' 
export function createApp() {
  const app = createSSRApp(App)
  app.use(uviewPlus)
  app.use(store); //加上这里
  return {
    app
  }
}
// #endif

3.在文件中引用使用

js 复制代码
import {mapState,mapMutations} from 'vuex' //mapState是存的数据,mapMutations是存的方法
...mapState({
      list: state => state.list  //相当于重命名了
 }),

或者换一个简写

js 复制代码
  computed:{
    ...mapState(['count','list']),
  }

在 onLoad()中可以打印出来

js 复制代码
 onLoad() {
   console.log(this.count)
 },

使用缓存方法,在methods中:

js 复制代码
methods:{
	...mapMutations(['add']),
}

在需要的位置直接用

js 复制代码
  onLoad() {
    console.log(this.count) //1
    this.add();
    console.log(this.count) //2
   }
相关推荐
默_笙26 分钟前
💫 闭包是个背包:拆解小米前端面试题里的三道"闭包陷阱"
前端·javascript·面试
老男孩游戏时光2 小时前
Vue3 Composition API 最佳实践,别再乱写 setup 了
vue.js
+VX:Fegn08952 小时前
计算机毕业设计|基于java+ vue共享单车信息系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
尾善爱看海3 小时前
《JavaScript 数组操作全攻略:12 类 API + 30 个实战场景 + 20 个避坑指南》
前端·javascript·面试
Bs_MoneyMagnet3 小时前
基于springboot+vue的非遗物质文化遗产系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
计算机毕设定制辅导-无忧学长3 小时前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台
OpsEye3 小时前
为什么你的 Agent 莫名烧钱?聊聊循环调用的兜底方案
javascript·ai编程
白远山4 小时前
上海24小时自助健身房系统软件开发实战指南
java·架构·uni-app·需求分析
linux_cfan4 小时前
16 · `custom-media-element`:属性拦截与转发
前端·javascript·音视频
右耳朵猫AI4 小时前
Web前端周刊2026W38 | React 19.3 发布、StyleX 深潜、jsdom 30.1 提速
前端·javascript·react.js·typescript·node.js