vue3+vite中如何使用vuex

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

vue3+vite中如何使用vuex

具体步骤:

1、安装vuex( vue3建议 4.0+ )

pnpm i vuex -S
登录后复制

2、main.js中配置

import store from '@/store'// hx-app的全局配置const app = createApp(App)app.use(store)
登录后复制

3、新建相关的文件夹与文件,这里配置多个不同vuex内部的js,使用vuex的modules来放不同的页面,文件,然后统一使用一个getters.js

index.js 核心文件,这里使用了import.meta.glob,而不是require

import getters from './getters'import { createStore } from 'vuex' const modulesFiles = import.meta.glob('./modules/*.js',{ eager: true }); // 异步方式 let modules = {}for (const [key, value] of Object.entries(modulesFiles)) {  var moduleName = key.replace(/^\.\/(.*)\.\w+$/, '$1');  const name = moduleName.split('/')[1]  modules[name] = value.default} const store = createStore({  modules,  getters}) export default store
登录后复制

getters.js 内部根据不同的页面来发送不同的state数据

const getters = {  sidebar: state => state.app.sidebar,  token: state => state.user.token,} export default getters
登录后复制

app.js 可以定义不同的变量,然后统一 export default

const state = {  sidebar: '123'} const mutations = {  TOGGLE_SIDEBAR: state => {    state.sidebar = '2222'     }, const actions = {  toggleSideBar({ commit }) {    commit('TOGGLE_SIDEBAR')  }} export default {  namespaced: true,// 为每个模块添加一个前缀名,保证模块命明不冲突  state,  mutations,  actions}
登录后复制

user.js 也可以直接返回一个对象,写法都可以

export default {  state: {    token: '123'  },   mutations: {    SET_TOKEN: (state, token) => {      state.token = token    },  },   actions: {  }}
登录后复制

4、具体页面使用

1)引入

import { useStore } from 'vuex'
登录后复制

2)具体使用

setup(){    const store = useStore()}
登录后复制

3)使用 mutations里面的方法

store.commit("app/TOGGLE_SIDEBAR", 1)
登录后复制

4)使用actions里面的方法

store.dispatch("app/asyncAddStoreCount", 2)
登录后复制

5、vuex中推出了一个插件(vuex-persistedstate),可以解决刷新数据无保存的问题, 可以把数据除了vuex以外,在本地和会话(都支持)储存下

1)安装

import store from '@/store'// hx-app的全局配置const app = createApp(App)app.use(store)0
登录后复制

2)store/index.js

import store from '@/store'// hx-app的全局配置const app = createApp(App)app.use(store)1
登录后复制

API

创建一个新的插件实例,使用提供的选项来生成持久化状态。可以提供以下选项来配置您的特定需求的插件:

key :存储持久状态的键。(默认:vuex)

paths :部分持续状态的任何路径的数组。如果没有路径给出,完整的状态是持久的。(默认:[])

reducer :一个函数,将被调用来基于给定的路径持久化的状态。默认包含这些值。

subscriber :一个被调用来设置突变订阅的函数。默认为store => handler => store.subscribe(handler)

storage :而不是(或与)getState和setState。默认为localStorage。

getState :将被调用以重新水化先前持久状态的函数。默认使用storage。

setState :将被调用来保持给定状态的函数。默认使用storage。

filter :将被调用来过滤将setState最终触发存储的任何突变的函数。默认为() => true

以上就是vue3+vite中如何使用vuex的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:详解uniapp的缓冲实现方案
下一篇:nodejs安装modules

发表评论

关闭广告
关闭广告