【vue学习笔记】vue3使用vuex进行数据缓存

使用vuex进行数据缓存

vue3部署:【vue学习笔记】 vue3 + vite + route实现框架构建
vue3引入element-ui,实现插件按需引入:【vue学习笔记】vue3引入unplugin-auto-import并接入element-ui
vue3安装reset.css:【vue学习笔记】vue3加入reset.csss
vue3引入axios插件:【vue学习笔记】vue3安装并封装axios插件
vue3使用mixin混入:【vue学习笔记】vue3使用mixin混入

vuex在中大型项目中的应用十分广泛,通常会把全局都用到的数据放在vuex中,方便其他页面进行使用。
如:用户token,用户信息等

一、使用vuex进行数据缓存

官网介绍:Vuex是一个专门为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化
我们理解:Vuex是采用集中式管理组件依赖的共享数据的一个工具vue插件,可以解决不同组件数据共享问题

1.vuex工作原理

在这里插入图片描述

1.1节点说明
  • state管理数据,管理的数据是响应式的,当数据改变时驱动视图更新。=>类似与组件的data
  • mutations更新数据,state中的数据只能使用mutations去改变数据
  • actions 把数据提交给mutations,可以进行异步操作,不能直接修改state
  • getters 对数据获取之前进行再次编译,可以理解为state的计算属性
  • modules 它可以来帮我们的状态树分隔成不同的模块,由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。

2.安装vuex

npm install vuex --save

3.在src下新增store文件夹

在这里插入图片描述

4.在store下新增modules文件夹

在这里插入图片描述

5.在modules下新增form.js、user.js文件

// form.js
const state = {
	count: 0 // 数量
};

const mutations = {
	SET_COUNT: (state) => {
		state.count++;
	}
};

const actions = {
	SET_COUNT_ASYNC(context) {
		setTimeout(() => {
		context.commit("SET_COUNT")
		}, 1000)
	}
};

export default {
	state,
	mutations,
	actions
};

// user.js
const state = {
	name: 0, // 姓名
	age: 0, // 年龄
};

const mutations = {
	SET_NAME: (state, data) => {
		state.name = data;
	},
	SET_AGE:(state, data) => {
		state.age = data;
	}
};

const actions = {};

export default {
	state,
	mutations,
	actions
};

6.在store下新增getters.js、index.js文件

// getters.js
const getters = {
	count: state => state.form.count,
	name: state => state.user.name,
	age: state => state.user.age
}

export default getters

// index.js
import { createStore } from 'vuex'
import form from './modules/form'
import user from './modules/user'
import getters from './getters' 

const store = createStore({
	modules: {
		form,
		user
	},
	getters
})

export default store

7.在main.ts中引入store

import { createApp } from 'vue'
import 'element-plus/theme-chalk/index.css';

// 新增store
import store from './store';

import App from './App.vue'
import router from './router'

createApp(App).use(router).use(store).mount('#app')

8.在vue中使用

<template>
	<h1>vuex中的数据{{ state.form.count }}</h1>
	<button @click="add(10)">++</button>
	<button @click="add_async(10)">异步</button>
</template>
<script setup>

import { useStore } from "vuex"

const {state,commit,dispatch} = useStore()

const add = () => {
	commit('SET_COUNT')
	console.log("store:", state.form.count)
}
const add_async = () => {
	dispatch('SET_COUNT_ASYNC')
	console.log("store:", state.form.count)
}
</script>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一款基于SpringBoot+Vue开发的智能学习平台系统。该系统采用了当下最流行的前后端分离架构,后端使用SpringBoot进行开发,前端则使用Vue.js框架。这种架构使得前后端可以并行开发,大大提高了开发效率。 系统功能丰富,包括用户管理、课程管理、在线学习、考试评估等多个模块。用户管理模块可以实现用户的注册、登录、信息修改等功能;课程管理模块可以对课程进行增删改查操作,还可以对课程进行分类管理;在线学习模块提供了视频播放、笔记记录、进度保存等功能,方便用户随时随地进行学习;考试评估模块可以进行在线考试,系统会自动对用户的答题情况进行评分,并给出详细的答案解析。 系统界面美观,用户体验良好。前端使用Vue.js框架,结合Element UI组件库,使得界面简洁大方,操作流畅自然。同时,系统还支持响应式布局,可以自适应不同的设备屏幕,无论是在PC端还是移动端,都能提供良好的用户体验。 此外,系统还具有强大的数据处理能力。后端使用SpringBoot框架,结合MyBatis持久层框架,可以方便地对数据进行操作,满足大数据量的处理需求。同时,系统还使用了Redis缓存技术,可以有效地提高数据的读取速度,提升系统的运行效率。 总的来说,这是一款功能强大、操作简便、用户体验良好的智能学习平台系统,无论是对于教育机构还是个人用户,都是一个非常好的选择。
Vue 3是一个流行的JavaScript框架,用于构建用户界面。VuexVue.js的官方状态管理库,用于在应用程序中集中管理和共享状态。下面是使用Vue 3和Vuex存储数据的步骤: 1. 安装Vuex:首先,你需要在项目中安装Vuex。可以使用npm或yarn来安装,命令如下: ``` npm install vuex ``` 2. 创建store:在项目的根目录下创建一个名为store.js的文件,并导入VueVuex: ```javascript import { createApp } from 'vue' import { createStore } from 'vuex' const store = createStore({ state() { return { // 在这里定义你的状态 } }, mutations: { // 在这里定义你的mutations }, actions: { // 在这里定义你的actions }, getters: { // 在这里定义你的getters } }) const app = createApp({}) app.use(store) export default store ``` 3. 定义状态:在store.js文件中的state对象中定义你的状态。例如: ```javascript state() { return { count: 0 } } ``` 4. 定义mutations:在mutations对象中定义用于修改状态的方法。例如: ```javascript mutations: { increment(state) { state.count++ }, decrement(state) { state.count-- } } ``` 5. 定义actions:在actions对象中定义用于处理异步操作的方法。例如: ```javascript actions: { asyncIncrement(context) { setTimeout(() => { context.commit('increment') }, 1000) } } ``` 6. 使用状态:在Vue组件中使用store中的状态。可以使用`$store.state`来访问状态,例如: ```javascript export default { computed: { count() { return this.$store.state.count } }, methods: { increment() { this.$store.commit('increment') }, decrement() { this.$store.commit('decrement') }, asyncIncrement() { this.$store.dispatch('asyncIncrement') } } } ``` 这样,你就可以在Vue组件中使用Vuex来存储和管理数据了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值