3-Vuex状态管理

Vuex是一个专门为Vue.js应用程序开发的状态管理模式。它集中管理应用程序中的所有组件的状态,并提供了一种可预测的方式来修改和查询状态。
Vuex的核心概念包括:

  1. State(状态):应用程序的状态存储在一个单一的对象中,称为state。在Vue组件中,可以通过this.$store.state来访问状态。
  2. Getters(计算属性):用于从状态中派生出一些衍生数据,类似于Vue组件中的计算属性。可以通过this.$store.getters来访问计算属性。
  3. Mutations(变更):用于修改状态的唯一方式。Mutations是同步的操作,通过提交一个mutation来修改状态,并且每个mutation都有一个对应的字符串类型的事件名和一个处理函数。
  4. Actions(动作):用于处理异步的操作,例如从服务器获取数据。Action提交一个mutation来间接修改状态。Actions可以包含任何异步操作,并且可以通过this.$store.dispatch来触发。
  5. Modules(模块):当应用程序变得复杂时,可以将state、getters、mutations和actions分割成模块。每个模块拥有自己的state、getters、mutations和actions。
    通过使用Vuex,我们可以更好地组织和管理应用程序的状态,实现组件之间的数据共享和通信,并且使状态变更的过程更加可追踪和可维护。

Vuex一般用来存储全局可访问的数据

步骤:
1.安装

npm install vuex@版本号

2.在一个文件夹下创建两个.js文件如 tab.js和index.js

//index.js
import Vue from 'vue'
import Vuex from 'vuex'
import tab from './tab'
Vue.use(Vuex)//创建vuex的实例export default new Vuex.Store({modules: {tab}
})//tab.js
import Cookie from 'js-cookie'
export default {state: {isCollapse: false, //控制菜单展开或收起变量tabsList: [ //面包屑数据{path: '/',name: 'home',label: '首页',icon: 's-home',url: 'Home/Home'},],//侧边框菜单数据menu: [],},mutations: {collapseMenu(state) { //控制菜单展开或收起方法state.isCollapse = !state.isCollapse},//更新面包屑数据selectMenu(state, val) {// console.log(val)//判断添加数据是否为首页if (val.name !== 'home') {const index = state.tabsList.findIndex(item => item.name === val.name)//不存在if (index == -1) {state.tabsList.push(val)}}},//删除指定的tag数据closeTag(state, item) {// console.log(item)const index = state.tabsList.findIndex(val => val.name === item.name)state.tabsList.splice(index, 1)},setMenu(state, val) {state.menu = valCookie.set("menu", JSON.stringify(val))},//动态注册路由registerouter(state, router) {// 没有数据if (!Cookie.get("menu")) return//有数据}}
}

3.在main.js(或相应的入口文件)中,需要引入刚刚创建的store,并在创建Vue实例时传入

4.访问数据或方法
在你的Vue组件中,可以通过this. s t o r e . s t a t e 访问状态,如 t h i s . store.state访问状态,如this. store.state访问状态,如this.store.state.tab.isCollapse
this.$store.commit(‘setMenu’,data.data.data)调用方法
但更推荐的做法是使用mapState、mapGetters、mapMutations和mapActions辅助函数来简化这些操作。

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

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

相关文章

探索设计模式的魅力:AI赋能分层模式,解构未来,智领风潮

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 探索设计模式的魅力:AI赋能分层模式,解构未来,智领风潮 ✨欢迎…

【网络安全】安全事件管理处置 — 安全事件处置思路指导

专栏文章索引:网络安全 有问题可私聊:QQ:3375119339 目录 一、处理DDOS事件 1.准备工作 2.预防工作 3.检测与分析 4.限制、消除 5.证据收集 二、处理恶意代码事件 1.准备 2.预防 3.检测与分析 4.限制 5.证据收集 6.消除与恢复 …

【Leetcode】vector刷题

🔥个人主页:Quitecoder 🔥专栏:Leetcode刷题 目录 1.只出现一次的数字2.杨辉三角3.删除有序数组中的重复项4.只出现一次的数字II5.只出现一次的数字III6.电话号码的字母组合 1.只出现一次的数字 题目链接:136.只出现一…

算法训练营day24

参考链接代码随想录 (programmercarl.com) 一、回溯算法基础 1.什么是回溯法? 回溯是递归的副产品,只要有递归就会有回溯。 2. 回溯法的效率 因为回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让…

linux 编译opencv遇到问题

linux编译opencv4.8的时候遇到问题 Error: suffix or operands invalid for vpand看到很多说法是升级as这个工具的版本,自测是从2.20升级到2.27就可以了

【Flutter】webview_flutter使用详解

文章目录 前言一、如何使用 前言 webview_flutter是Flutter官方推出的一款用于Flutter上的webview插件,该插件在 iOS 用的是WKWebView 支持; 在 Android 上用的是系统WebView。 插件地址:https://pub.dev/packages/webview_flutter 一、如何…

python提取date的月份和天数

在Python编程中,经常需要从日期中提取月份和天数。这在数据处理、分析和可视化等领域都是非常常见的操作。 本文将介绍如何使用Python提取日期中的月份和天数,并通过代码示例展示具体的实现方法。 1.使用datetime模块获取日期信息 要提取日期的月份和天…

TypeScript 项目报错Projects must list all files or use an include pattern

文章目录 原因分析解决方案使用include和exclude使用files 总结 这条错误信息:“Projects must list all files or use an include pattern”通常与TypeScript项目的配置有关,特别是在处理 tsconfig.json文件时。这个错误提示你需要在 tsconfig.json中…

c++ vec3b运算

文章目录 1. 两个Vec3b点乘后相加求和&#xff1a;ddot()2. 两个Vec3b不同却相减为0 1. 两个Vec3b点乘后相加求和&#xff1a;ddot() Vec3b v1 img.at<Vec3b>(0, 0); Vec3b v2 img.at<Vec3b>(0, 1); cout << "v1:" << v1 << endl; …

安卓手机连接电脑实用技巧:实现文件传输与共享

在手机使用过程中&#xff0c;我们常常需要将手机中的文件传输到电脑&#xff0c;或者将手机与电脑进行共享。为了实现这一需求&#xff0c;掌握一些实用的安卓手机连接电脑技巧就显得尤为重要。本文将为您详细介绍2种简单、高效且安全的方法&#xff0c;让您轻松实现安卓手机与…

【Python系列】受保护属性

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Scala 04 —— Scala Puzzle 拓展

Scala 04 —— Scala Puzzle 拓展 文章目录 Scala 04 —— Scala Puzzle 拓展一、占位符二、模式匹配的变量和常量模式三、继承 成员声明的位置结果初始化顺序分析BMember 类BConstructor 类 四、缺省初始值与重载五、Scala的集合操作和集合类型保持一致性第一部分代码解释第二…

SSLHandshakeException: Remote host closed connection during handshake异常处理

请求第三方https接口出现SSLHandshakeException: Remote host closed connection during handshake问题&#xff0c;本地正常&#xff0c;服务器异常。原因是服务器jdk版本是jdk1.8_40 现阶段找到三个方案&#xff0c;第一个是jdk1.8_151版本 添加或者修改Java\jre\lib\securit…

VIO外参标定方法总结

一、前言 VIO外参标定是指相机和IMU之间的转移矩阵的确定&#xff0c;包括33的旋转矩阵和3维平移向量。整体上分为离线标定和在线标定两类方法&#xff0c;这篇文章做一个总结&#xff0c;主要是经典的方法&#xff0c;记录其思想。 二、博文链接 1、离线标定方法 最基本的…

抖音小店想要快速出单,必须做好这两点,这也是做店的两大核心。

大家好&#xff0c;我是电商糖果 很多刚开店的新手商家&#xff0c;都会发现店铺运营并没有网上说的这么简单。 店铺开好之后&#xff0c;是不会自己爆单的。 但是会有很多人说&#xff0c;为什么别人的店铺就可以很快的出单&#xff0c;然后爆单呢&#xff1f; 那些开电商…

安装svn网络有问题怎么办?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

2024最新Nessus 免费安装 附详细安装教程

免责声明 请勿利用文章内的相关技术从事非法测试。由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任&#xff0c;请遵守网络安全法律。本次仅用于测试&#xff0c;请完成测试后24小时之…

Reactjs常用组件

1 react 1.1 useState 让函数组件具有维持状态的能力 const[count, setCount]useState(0); 1.2 useEffect 执行副作用&#xff0c;useEffect 的第二个参数告诉 React 用到了哪些外部变量 类似于Vue watch的作用 useEffect(fn, deps); 1.每次 render 后执行&#xff1a;不…

从零入门区块链和比特币(第二期)

欢迎来到我的区块链与比特币入门指南&#xff01;如果你对区块链和比特币感兴趣&#xff0c;但不知道从何开始&#xff0c;那么你来对地方了。本博客将为你提供一个简明扼要的介绍&#xff0c;帮助你了解这个领域的基础知识&#xff0c;并引导你进一步探索这个激动人心的领域。…

4.25 作业

#1、创建g1组&#xff0c;要求创建一个属于redhat用户g1组的文件redhat.txt [rootlocalhost ~]# groupadd g1 [rootlocalhost ~]# touch /root/redhat.txt [rootlocalhost ~]# ll /root/redhat.txt -rw-r--r--. 1 root root 0 4月 26 20:19 /root/redhat.txt [rootlocalhost ~…