vuex

news2024/11/17 3:33:41

目录

1、什么是vuex

2、vuex的工作方式

3、vuex的使用场景

4、工作流程:View -> Actions -> Mutations -> State -> View

5、vuex的核心API

​ (1)state:

​ (2)mutations

​ (3)actions:通过actions去触发mutations中的方法,实现对state的异步修改

​ (4)getters:用于获取state的属性值。类似于state的计算属性

​ (5)modules:在大型项目中用于管理多个子模块的state

6、应用

​ (1)安装vuex

​ (2)定义vuex的store(仓库)

​ (3)在main.js文件中进行配置

7、 强调

8、vuex的工作流程


1、什么是vuex

是vue项目的状态管理器(状态管理工具)。vue项目的状态是通过vue实例(组件)绑定的变量来体现。所以也可以说vuex是用来管理vue项目中的各种变量(vue项目中的组件可以访问vuex中管理的变量—- 方便了组件的通信)

2、vuex的工作方式

​ (1)在全局中定义一个state:state本质是一个对象,该对象的属性就是vue组件用到的变量(所有组件共享这些变量)

​ (2)在vue组件中若要更新state的值,必须通过mutation来进行(只能通过mutation去改变state的状态),只能同步修改(即mutation中的方法都是同步的)

​ (3)若要异步的修改state的值,需要通过action来进行(action不能直接修改state,但是它可以向mutation发起请求,由mutation来修改state的值,可以在action中定义异步方法)

3、vuex的使用场景

​ (1)不适合:小型的简单应用

​ (2)适合:大型的单页面应用

        ​ A、多个视图(组件)依赖同一个状态:

        ​ B、不同的视图的行为需要改变同一个状态

4、工作流程:View -> Actions -> Mutations -> State -> View

5、vuex的核心API

​ (1)state:

        ​ A、必须是唯一的

        ​ B、本质是一个对象,维护的是vue的状态

​ (2)mutations

        ​ A、作用:用来修改state

        ​ B、定义了多个用于修改state的方法

        ​ C、只能包含同步代码

        ​ D、触发方式:

                ​ a、在actions中通过 commit(‘mutations的方法名’ ) 实现触发

                ​ b、在组件中通过 this.$store.commit(‘方法名’,params) 实现触发

​ (3)actions:通过actions去触发mutations中的方法,实现对state的异步修改

        ​ A、可以包含异步代码

        ​ B、通过commit触发mutations来间接修改state

        ​ C、触发方式(如何触发actions):在组件中通过 this.$store.dispatch(‘actions 名称’, data1) 进行触发

​ (4)getters:用于获取state的属性值。类似于state的计算属性

        A、在组件中的使用方式: this.$store.getters.方法名

​ (5)modules:在大型项目中用于管理多个子模块的state

6、应用

注意版本:vuex3对应的vue2,vuex4对应的vue3

​ (1)安装vuex

        ​ npm install vuex@3 或 npm i vuex@3 -S

​ (2)定义vuex的store(仓库)

        ​ A、 src/store/store.js

        ​ B、导入vue和vuex

import Vue from 'vue'
import Vuex from 'vuex'
//全局注册vuex
Vue.use(Vuex)
//定义全局的store:即定义全局的状态管理器(数据仓库)
export default  new Vuex.Store({
    state:{}, //定义状态属性并初始化
    getters: {},//定义获取状态属性值的方法
    mutations: {},//定义修改状态属性值的方法
    actions: {},//定义异步修改状态属性值的方法
    modules: {} //整合子store
})

​ (3)在main.js文件中进行配置

import Vue from 'vue'
import App from './App.vue'
import store from './store/store' //导入vuex的配置文件
//在vue实例中引用
new Vue({
  store,
  render: function (h) { return h(App) },
}).$mount('#app')

7、 强调

        A、在组件中触发mutations中定义的方法:触发同步方法

​                 this.$store.commit(‘mutations中定义的方法名’,参数)

        B、在组件中触发actions中定义的方法:触发异步方法

                ​ this.$store.dispatch(‘actions中定义的方法名’)

        C、获取state中属性值的方法:

        ​ (a)直接获取:this.$store.state.属性名

        ​ (b)通过getters: this.$store.getters.属性名

        D、在定义vuex的Store实例时不能使用this

8、vuex的工作流程

​ (1)在组件中通过commit直接向mutations提交修改state的请求、或者通过dispatch向actions派发请求

​ (2)mutations通过接收到的请求去修改state的状态

​ (3)当state的状态发生改变后,组件通过计算属性(computed)获取改变后state,刷新组件

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pinia的使用(以vue3+ts+vite为例)

文章目录Pinia1. 安装2. 引入vue33. 初始化store仓库4. 修改state5. 解构store6. store中的方法和计算属性(actions、getters)7. API7.1 $reset7.2 $subscribe 和 $onAction8. 插件案例:持久化插件Pinia Pinia官方文档 Pinia GitHub地址 1…

VSCode vscode-pandoc插件将中文Markdown转换为好看的pdf文档(使用eisvogel模板)

Markdown的使用经常需要转变其他格式,在VSCode里有个很好用的插件:vscode-pandoc,先进行下载。 打开设置(左下角的小齿轮) 输入pandoc 在HTML Opt String中粘贴入: -s -t html5可将Markdown转换输出HTML。…

STL-----map的常见使用

1,MAP的说明Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可…

3.1.8 多态

文章目录1.概念2.特点3.入门案例练习4 多态的好处5 多态的使用6 练习:多态成员使用测试7 拓展7.1 综合案例7.2 多态为了统一调用标准7.3 静态变量和实例变量的区别7.4 向上转型和向下转型1.概念 多态是面向对象程序设计(OOP)的一个重要特征&…

【数据结构初阶】第三篇——单链表

链表的概念及其结构 初始化链表 打印单链表 增加结点 头插 尾插 在给定位置之前插入 在给定位置之后插入 删除结点 头删 尾删 删除给定位置的结点 查找数据 修改数据 链表的概念及其结构 基本概念 链表是一种物理存储结构上非连续,非顺序的存储结构&a…

盘点保护隐私安全的浏览器,密码锁屏这个功能,真香

在互联网时代,大家都比较关心自己的隐私安全。一些互联网公司和在线客服会跟踪用户的在线活动,收集用户的个人信息,有时候甚至因为个人的不良习惯导致信息泄露,因此选择隐私和安全性好的浏览器尤其重要。下面给大家介绍隐私安全做…

大数据技术架构(组件)11——Hive:日期函数

1.4.5、日期函数1.4.5.1、from_unixtimeselect from_unixtime(1638602968),from_unixtime(1638602968,yyyy-MM-dd HH:mm:SS),from_unixtime(1638602968,yyyy-MM-dd);1.4.5.2、unix_timestampselect unix_timestamp();1.4.5.3、to_dateselect to_date(2021-12-04 2021-12-04 15:…

【授权与认证】OAuth 2.0 和 OIDC 的异同点

开发者谈 | OAuth 2.0 和 OIDC 协议的关系?(内含必看案例) 【Web 安全】CSRF 攻击详解 OAuth 2.0 OAuth 2.0 的一个简单解释OAuth 2.0 的四种方式什么是Oauth2.0,Oauth2.0的四种授权模式 简单说,OAuth 就是一种授权…

【前端】Vue项目:旅游App-(16)home+hooks:窗口滚动到底部动态加载新数据、抽取到hook

文章目录目标过程与代码监听窗口的滚动窗口上事件监听的移除封装到一个hook回调函数法(不推荐)返回值法(推荐)效果总代码修改或添加的文件hooks的useScrollhome-content参考本项目博客总结:【前端】Vue项目&#xff1a…

git 使用tag

文章目录概述示例创建标签 tag查看tag删除本地标签推送标签git 根据tag创建分支回退到tag参考概述 常常为发布上线某个版本打上一个标签,表示这是什么版本,这样后续找起来就很方便。 如果没有标签只能通过commit历史去查找,而且commit版本显…

每日学术速递1.30

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 更多Ai资讯: 今天带来的arXiv上最新发表的3篇文本图像的生成论文。 Subjects: cs.LG、cs.Cv、cs.AI、cs.CL 1.StyleGAN-T: Unlocking the Power of GANs for Fast Large-Scale Text-to-Im…

Spire.Doc for Java v11.1.1 Patch

Spire.Doc for Java是一个专业的 Word API,它使 Java 应用程序能够在不依赖 Microsoft Word 的情况下创建、转换、操作和打印 Word文档。 通过使用这个多功能库,开发人员能够毫不费力地处理大量任务,例如插入图像、超链接、 数字签名、书签和…

Mybatis-plus(下)

一,乐观锁可参考官方文档:https://baomidou.com/pages/0d93c0/场景:当两个工作人员同时去处理一条投诉工单的时候当两个人一起点开了投诉工单详情 并一起编辑处理 随后同时反馈给用户时 此时就会出现矛盾 当系统正常 没有bug的时候 是会出现两…

SpringCloud_Sleuth分布式链路请求跟踪

目录一、概述1.为什么会出现这个技术?需要解决哪些问题?2.是什么3.解决二、搭建链路监控步骤1.zipkin2.服务提供者3.服务消费者(调用方)4.依次启动eureka7001/8001/805.打开浏览器访问: http://localhost:9411一、概述…

网络流量监控对DMS系统排错分析案例

背景 DMS系统是某汽车集团的经销商在线系统,是汽车集团的重要业务系统。本次分析重点针对DMS系统性能进行分析,以供安全取证、性能分析、网络质量监测以及深层网络分析。 该汽车总部已部署NetInside流量分析系统,使用流量分析系统提供实时和…

Qt扫盲-QDebug理论总结

QDebug理论使用总结一、概述二、使用1. 基础使用2. 格式化选项3.将自定义类型写入流一、概述 每当开发人员需要将调试或跟踪信息写入设备、文件、字符串或控制台时,都会使用QDebug。这个就可以方便我们调试,基本上Qt所有的内容都能通过调试打印出来&…

14.重载运算与类型转换

文章目录重载运算与类型转换14.1基本概念直接调用一个重载的运算符函数某些运算符不应该被重载使用与内置类型一致的含义赋值和复合赋值运算符选择作为成员或者非成员14.2输入和输出运算符14.2.1重载输出运算符<<输出运算符尽量减少格式化操作输入输出运算符必须是非成员…

智能家居之主机---计划筹备

智能家居之主机---计划筹备前言绪言前期构思硬件平台结构平台前言 绪言 感觉有一年多没发过文章了&#xff0c;这一年多太忙了&#xff0c;来到新的公司后要学的太多了&#xff0c;代码风格&#xff0c;架构&#xff0c;操作系统&#xff0c;各种通讯协议&#xff0c;伺服驱动…

解决问题的方法论

概述 解决问题的能力是职场中最重要的能力之一&#xff0c;如何逻辑清晰、效率满满的解决问题&#xff0c;可参考以下4个步骤。 一、准确的界定问题 找出真正的问题。 准确的界定问题&#xff0c;避免被表面现象所迷惑。 《麦肯锡工具》中&#xff0c;给出一个标准的步骤&am…

【数据手册】LM1117L3芯片的使用

1.特征 可调或固定输出1A输出电流低损耗&#xff0c;在1A输出电流时最大电压为1.3V0.04%的线路调节0.2%负载调节100%热极限燃烧快速瞬态响应 2.描述 LM1117系列正可调和固定调节器设计提供1A高电流效率。所有内部电路设计为低至1.3V输入输出差。片内微调将参考电压调整为1% 3…