【前端 - Vue】Vuex基础入门,创建仓库的详细步骤

🚀 个人简介:6年开发经验,现任职某国企前端负责人,分享前端相关技术与工作常见问题~
💟 作    者:前端菜鸟的自我修养❣️
📝 专    栏:vue从基础到起飞
🌈 若有帮助,还请 关注➕点赞➕收藏  ,不行的话我再努努力💪💪💪

前言:本文讲解【Vuex核心概念和API】【Vuex使用场景】【Vuex初始化仓库】等内容,并结合具体代码让小伙伴们深入理解 ,彻底掌握!

文章目录

一、Vuex 概述

1.是什么

2.使用场景

3.优势

4.注意:

二、vuex 核心概念和 API

1. state

2. actions

3. mutations

4. getters

三、vuex 的使用 - 创建仓库

1.安装 vuex

2.新建 store/index.js 专门存放 vuex

3.创建仓库 store/index.js

4 在 main.js 中导入挂载到 Vue 实例上

5.测试打印Vuex

一、Vuex 概述

目标:明确Vuex是什么,应用场景以及优势

1.是什么

Vuex 是一个 Vue 的 状态管理工具,状态就是数据。

大白话:Vuex 是一个插件,可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。例如:购物车数据、个人信息数

2.使用场景

  • 某个状态 在 很多个组件 来使用 (个人信息)

  • 多个组件 共同维护 一份数据 (购物车)

3.优势

  • 共同维护一份数据,数据集中化管理

  • 响应式变化

  • 操作简洁 (vuex提供了一些辅助函数)

4.注意:

官方原文:

  • 不是所有的场景都适用于vuex,只有在必要的时候才使用vuex

  • 使用了vuex之后,会附加更多的框架中的概念进来,增加了项目的复杂度 (数据的操作更便捷,数据的流动更清晰)

Vuex就像《近视眼镜》, 你自然会知道什么时候需要用它~

二、vuex 核心概念和 API

1. state

  1. vuex 管理的状态对象
  2. 它应该是唯一的
//准备state——用于存储数据
const state = {
	sum:0 //当前的和
}

2. actions

  1. 值为一个对象,包含多个响应用户动作的回调函数
  2. 通过 commit( )来触发 mutation 中函数的调用, 间接更新state
  3. 如何触发 actions 中的回调?
    在组件中使用: $store.dispatch('对应的 action 回调名') 触发
  4. 可以包含异步代码(定时器, ajax 等等)
//准备actions——用于响应组件中的动作
const actions = {
	jia(context,value){
		console.log('actions中的jia被调用了')
		context.commit('JIA',value)
	}
}

3. mutations

  1. 值是一个对象,包含多个直接更新 state 的方法
  2. 谁能调用 mutations 中的方法?如何调用?
    在 action 中使用:commit('对应的 mutations 方法名') 触发
  3. mutations 中方法的特点:不能写异步代码、只能单纯的操作state
//准备mutations——用于操作数据(state)
const mutations = {
	JIA(state,value){
		console.log('mutations中的JIA被调用了')
		state.sum += value
	}
}

4. getters

  1. 值为一个对象,包含多个用于返回数据的函数
  2. 如何使用?—— $store.getters.xxx
  3. 示例代码:
//准备getters——用于将state中的数据进行加工
const getters = {
	bigSum(state){
		return state.sum*10
	}
}

三、vuex 的使用 - 创建仓库

1.安装 vuex

安装vuex与vue-router类似,vuex是一个独立存在的插件,如果脚手架初始化没有选 vuex,就需要额外安装。

  
  yarn add vuex@3 或者 npm i vuex@3

2.新建 store/index.js 专门存放 vuex

​ 为了维护项目目录的整洁,在src目录下新建一个store目录其下放置一个index.js文件。 (和 router/index.js 类似)

3.创建仓库 store/index.js

// 导入 vue
import Vue from 'vue'
// 导入 vuex
import Vuex from 'vuex'
// vuex也是vue的插件, 需要use一下, 进行插件的安装初始化
Vue.use(Vuex)

// 创建仓库 store
const store = new Vuex.Store()

// 导出仓库
export default store

4 在 main.js 中导入挂载到 Vue 实例上

  
  import Vue from 'vue'
  import App from './App.vue'
  import store from './store'
  ​
  Vue.config.productionTip = false
  ​
  new Vue({
    render: h => h(App),
    store
  }).$mount('#app')

此刻起, 就成功创建了一个 空仓库!!

5.测试打印Vuex

App.vue

  
  created(){
    console.log(this.$store)
  }

创作不易,喜欢这篇文章的小伙伴 关注+收藏 哦~❣️

更多专栏订阅推荐:

👍 前端工程搭建
💕 JavaScript深入研究

📝 前端工作常见问题汇总

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/680244.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云手机定位切换,带来的不只是便利

当我们利用云手机的定位切换时,首先感受到的确实是极大的便利。 我们就像是拥有了瞬间移动的超能力,可以自由地在不同城市、甚至不同国家的虚拟场景中穿梭。无论是为了更精准地获取当地的信息,比如实时的交通状况、特色店铺等,还…

Redis位图

简介 在我们平时开发过程中,会有一些bool型数据需要存取,比如用户一年的签到记录,签了是1,没签是0,要记录365天。如果使用普通的key/value,每个用户要记录365个,当用户上亿的时候,需…

Git存储库的推送保护

Git存储库的推送保护 昨天有一个提交一直提示:Push rejected Push rejected Push master to origin/master was rejected by remote起初在网络上找各种解决办法,先列举以下找到的各类方法 提交用户的用户名和邮箱与Git不一致,这个只需要通…

MATLAB设计ATF教程

打开Control System Designer 在MATLAB命令行窗口输入sisotool 出现如下Control System Designer窗口 基础Compensator 打开工具后,Compensator初始为1,需要按照需求进行设计。本示例的传递函数为: 基于上述传递函数的Bode图进行后续的设计…

SecureFX[po破] for Mac FTP/SSH传输工具[解] 安装教程

Mac分享吧 文章目录 效果一、准备工作二、开始安装注意: SecureFX 和 SecureCRT 不能同时都放在应用程序中安装,一定要一个在应用程序中,另一个在桌面上使用!否则会导致一个操作不成功!将SecureFX软件拖到桌面&#x…

Docker桥接网络分析

前言 《虚拟局域网(VLAN)》一文中描述了虚拟网卡、虚拟网桥的作用,以及通过iptables实现了vlan联网,其实学习到这里自然就会联想到目前主流的容器技术:Docker,因此接下来打算研究一下Docker的桥接网络与此有何异同。 猜测 众所周知…

将Java程序打包为为.exe文件

将Java程序打包为为.exe文件 将Java程序打包为为.exe文件分为俩个步骤: 1、将Java程序打包成Jar包(此时就可复制桌面便于使用) 2、打包为.exe文件(需要借助工具) 一、打包为.exe文件 1. file -> Project Structure…

linux网络基础 DHCP和ftp 02

一、DHCP DHCP:动态主机配置协议。 1、DHCP原理 服务端和客户端 服务端:提供某种特定的服务客户端:使用这种特定的服务c/s client/servre 客户端 服务端 应用程序之间通过端口进行通信,实现c/sb/s browser/server 浏览器 服务…

深度学习——卷积神经网络(CNN)

深度学习 深度学习就是通过多层神经网络上运用各种机器学习算法学习样本数据的内在规律和表示层次,从而实现各种任务的算法集合。各种任务都是啥,有:数据挖掘,计算机视觉,语音识别,自然语言处理等。‘ 深…

生成式AI时代已来,你是否做好了准备?

面对正在来临的生成式AI时代,从个人到企业,都应该为之做好充足的准备。 生成式AI时代的黎明已经来临 “生成式AI时代的黎明已经来临,它将会改变我们每个人的生活和工作方式、改变每一个行业。”在近日召开的2024亚马逊云科技中国峰会上&#…

甲方的苛刻,是成就优质作品的必要条件,辩证看待。

取其上、得其中,取其中,得其下,取其下、则无所的。在进行B端界面的设计的时候,设计师除了自我加压外,还少不了客户的严格要求,贝格前端工场为大家辩证分析一下。 一、严格产出高品质作品 甲方提出苛刻的要…

vue改造四级树状可输入table

vue改造四级树状可输入table <template><div class"dimension_wary"><div class"itemHeader"><div class"target"></div><div class"sort">X2</div><div class"weight">…

使用Ollama+OpenWebUI本地部署Gemma谷歌AI开放大模型完整指南

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;AI大模型部署与应用专栏&#xff1a;点击&#xff01; &#x1f916;Ollama部署LLM专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月4日10点50分 &#x1f004;️文章质量&#xff1…

2024年工业设计与智能城市国际会议(ICIDSC 2024)

2024 International Conference on Industrial Design and Smart Cities 【1】大会信息 大会时间&#xff1a;2024-07-26 大会地点&#xff1a;中国三亚 截稿时间&#xff1a;2024-07-12(以官网为准&#xff09; 审稿通知&#xff1a;投稿后2-3日内通知 会议官网&#xff1a;…

从实战案例来学习结构化提示词(一)

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识,包括但不限于AI科普,AI工具测评,AI效率提升,AI行业洞察。关注我,AI之…

python MNE EEG:从预处理到绘制事件相关光谱扰动(ERSP/ERDS)

** 参考&#xff1a;https://weisihong9.github.io/2024/05/15/MNE_EEG/ **

RabbitMQ docker安装及使用

1. docker安装RabbitMQ docker下载及配置环境 docker pull rabbitmq:management # 创建用于挂载的目录 mkdir -p /home/docker/rabbitmq/{data,conf,log} # 创建完成之后要对所创建文件授权权限&#xff0c;都设置成777 否则在启动容器的时候容易失败 chmod -R 777 /home/doc…

【C++练级之路】【Lv.24】异常

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、异常的概念及定义1.1 异常的概念1.2 异常的定义 二、异常的使用2.1 异常的栈展开匹配2.2 异常的重新…

vs2019 c++20 规范 STL库中关于时间的模板 ratio<T,U> , duration<T,U> , time_point<T,U>等

(探讨一)在学习线程的时候&#xff0c;一些函数会让线程等待或睡眠一段时间。函数形参是时间单位&#xff0c;那么在 c 中是如何记录和表示时间的呢&#xff1f;以下给出模板简图&#xff1a; &#xff08;2 探讨二&#xff09;接着给出对模板类 duration_values 的成员函数的测…

【Ubuntu】超详细安装Ubuntu系统

鉴于有些小伙伴在安装Ubuntu系统的时候遇到很多问题&#xff0c;因此打算编写一篇记录一下安装Ubuntu系统的整个过程~互相学习&#xff01; 一、制作U盘启动 准备一个大于8G以上的U盘&#xff0c;这里我使用的是16G的U盘下载UltraISO工具 网站地址&#xff1a;UltraISO准备Ub…