前端Vue入门-day07-Vuex入门

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

目录

自定义创建项目

vuex概述

构建 vuex [多组件数据共享] 环境 

创建一个空仓库

state 状态

1. 提供数据:

2. 使用数据:

mutations 

辅助函数 - mapMutations

actions

辅助函数 - mapActions 

Getter 

模块 module (进阶语法)

访问语法-state

访问语法-getters

访问语法-mutation

访问语法-action


自定义创建项目

目标:基于 VueCli 自定义创建项目架子

开始创建项目

 

选择自定义创建项目 

 

选择文件需要配置的特性 

 

选择版本 

是否选择历史模式

css预处理器选择 

 

选择ESLint规范 

选择在什么时候开始校验

 选择配置文件存放位置

是否保存

vuex概述

1. 是什么:
vuex 是一个 vue 的 状态管理工具 ,状态就是数据。
大白话:vuex 是一个插件,可以帮我们 管理 vue 通用的数据 (多组件共享的数据) 例如:购物车数据 个人信息数据
2. 场景:
① 某个状态 在 很多个组件 来使用 (个人信息)
② 多个组件 共同维护 一份数据 (购物车)
3. 优势:
① 共同维护一份数据, 数据集中化管理
响应式变化
③ 操作简洁 (vuex提供了一些辅助函数)

构建 vuex [多组件数据共享] 环境 

效果是三个组件, 共享一份数据:
任意一个组件都可以修改数据
三个组件的数据是同步的

创建一个空仓库

// 这里存放的就是vuex相关的核心代码
import Vue from 'vue'
import Vuex from 'vuex'// 插件安装
Vue.use(Vuex)// 创建仓库
const store = new Vuex.Store()// 导出给main.js
export default store

state 状态

1. 提供数据:

State 提供唯一的公共数据源,所有共享的数据都要统一放到 Store 中的 State 中存储。
在 state 对象中可以添加我们要共享的数据

2. 使用数据:

① 通过 store 直接访问
② 通过辅助函数
mapState是辅助函数,帮助我们把 store中的数据 自动 映射到 组件的计算属性中

mutations 

目标:掌握 mutations 的操作流程,来修改 state 数据。 (state数据的修改只能通过 mutations )

1. 定义 mutations 对象,对象中存放修改 state 的方法

 2. 组件中提交调用 mutations

提交 mutation 是可以传递参数的 `this.$store.commit( 'xxx', 参数 )` 

1. 提供 mutation 函数 (带参数 - 提交载荷 payload )

2. 页面中提交调用 mutation

 Tips: 提交参数只能一个,如果有多个参数,包装成一个对象传递

辅助函数 - mapMutations

目标:掌握辅助函数 mapMutations,映射方法
mapMutations 和 mapState很像,它是把位于 mutations中的方法 提取了出来,映射到 组件methods

actions

目标:明确 actions 的基本语法,处理异步操作。
说明: mutations 必须是同步的 (便于监测数据变化,记录调试)
1. 提供action 方法

2. 页面中 dispatch 调用 

辅助函数 - mapActions 

mapActions 是把位于 actions中的方法提取了出来,映射到组件methods

Getter 

说明:除了state之外,有时我们还需要从state中 派生出一些状态 ,这些状态是依赖state的,此时会用到getters
目标:掌握核心概念 getters 的基本语法 (类似于计算属性)
例如:state中定义了list,为 1-10 的数组,组件中,需要显示所有大于5的数据

1. 定义 getters
2. 访问getters
① 通过 store 访问 getters
② 通过辅助函数 mapGetters 映射

模块 module (进阶语法)

由于 vuex 使用 单一状态树 ,应用的所有状态 会集中到一个比较大的对象
当应用变得非常复杂时, store 对象就有可能变得相当臃肿。(当项目变得越来越大的时候,Vuex会变得越来越难以维护)

模块拆分:

user模块: store/modules/user.js

访问语法-state

目标:掌握模块中 state 的访问语法
尽管已经分模块了,但其实子模块的状态,还是会挂到根级别的 state 中,属性名就是模块名
使用模块中的数据:
① 直接通过模块名访问 $store.state.模块名.xxx
② 通过 mapState 映射
        默认根级别的映射 mapState([ 'xxx' ])
        子模块的映射 mapState('模块名', ['xxx']) - 需要开启命名空间

访问语法-getters

目标:掌握模块中 getters 的访问语法
使用模块中 getters 中的数据:
① 直接通过模块名访问 $store.getters['模块名/xxx ']
② 通过 mapGetters 映射
        默认根级别的映射 mapGetters([ 'xxx' ])
        子模块的映射 mapGetters('模块名', ['xxx']) - 需要开启命名空间

 

访问语法-mutation

目标:掌握模块中 mutation 的调用语法
注意:默认模块中的 mutation 和 actions 会被挂载到全局, 需要开启命名空间 ,才会挂载到子模块。
调用子模块中 mutation:
① 直接通过 store 调用 $store.commit('模块名/xxx ', 额外参数)
② 通过 mapMutations 映射
        默认根级别的映射 mapMutations([ 'xxx' ])
        子模块的映射 mapMutations('模块名', ['xxx']) - 需要开启命名空间

访问语法-action

目标:掌握模块中 action 的调用语法 (同理 - 直接类比 mutation 即可)
注意:默认模块中的 mutation 和 actions 会被挂载到全局, 需要开启命名空间 ,才会挂载到子模块。
调用子模块中 action :
① 直接通过 store 调用 $store.dispatch('模块名/xxx ', 额外参数)
② 通过 mapActions 映射
        默认根级别的映射 mapActions([ 'xxx' ])
        子模块的映射 mapActions('模块名', ['xxx']) - 需要开启命名空间

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

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

相关文章

【云原生】K8S超详细概述

目录 一、Kubernets概述1.1 K8S什么1.2为什么要用K8S 二、Kubernetes 集群架构与组件2.1Master组件Kube-apiserverKube-controller-managerKube-scheduler 2.2 配置存储中心etcd 2.3 Node 组件KubeletKube-Proxydocker 或 rocket 三、 Kubernetes 核心概念3.1Pod3.2Pod 控制器K…

python 变量赋值 修改之后 原值改变

ython 是一种动态语言,因此变量的类型和值 在运行时均可改变。当我们将一个变量赋值给另一个变量时,实际上是将变量的引用地址传递给新的变量,这意 味着新旧变量将指向同一个位置。因此,在更改其中一个变量的值时,另一…

SpringBoot项目-个人博客系统的实现【下】

10.实现强制要求登陆 当用户访问 博客列表页和 博客详情页时, 如果用户当前尚未登陆, 就自动跳转到登陆页面 1.添加拦截器 public class LoginInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletRespon…

解决Linux下PyCharm无法新建文件

一、问题描述 如图,在Ubuntu Linux系统中使用pycharm管理项目时,提示无法新建.py源文件: 二、问题解决 将问题定性为文件夹(目录)权限问题,在终端中打开项目文件夹的上级目录,将整个项目目录的…

全志F1C200S嵌入式驱动开发(应用程序开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 我们在开发soc驱动的时候,很多情况下也要验证下当前的驱动功能是否正确。当然除了验证驱动功能之外,我们还要编写业务代码和流程代码。这中间就和各行各业有关了,有的是算法,有…

你还不快来学习怎么翻译视频中的英语吗

年轻人纪逸是一个对世界充满好奇心的视频爱好者。每当他看到令人激动的视频时,总是忍不住想要将它与更多人分享。然而,有一天,他遇到了一个困扰:他发现了一段精彩的外语视频,但自己并不懂那种语言!他犯了愁…

动态规划01: 斐波那契数列模型

第 N 个泰波那契数(easy) 题目链接: 1137. 第 N 个泰波那契数 题目描述: 泰波那契序列 Tn 定义如下: T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n,请返回第 n 个泰波那契数 Tn 的值。 示例 1&…

k8s-服务发现service和ingress

回到目录 service用于集群内部应用的网络调用,处理东西流量 ingress用于集群外部用户访问内部服务,处理南北流量 一 kube-proxy三种代理模式 kubernetes集群中有三层网络,一类是真实存在的,例如Node Network、Pod Network,提供真…

Node.js究竟是什么?初学者指南

如果你正在考虑使用JavaScript进行后端开发,你会听到“Node.js”这个术语。Node通常与开发功能强大的web服务器联系在一起。 但 Node.js 究竟是什么?它是和 Angular 一样的 JavaScript 框架吗?它是一种编程语言吗?它是 JavaScrip…

中国中医中药元宇宙 中药材价格缘何“狂飙”

◇相比去年同期,有超200个常规品种涨幅高于50%,25个常用大宗药材涨幅超200%,个别品种甚至涨价4至9倍 ◇在中药材价格普遍高涨的情况下,部分市场仓库库存数量也较多,出现囤积居奇倾向 ◇“不少游资和热钱涌入中药材市场…

Spring Boot + Vue3前后端分离实战wiki知识库系统<十一>--文档管理功能开发三

文档内容的显示: 在上一次Spring Boot Vue3前后端分离实战wiki知识库系统<十>--文档管理功能开发二文档管理模块还差文档的显示木有完成,所以接下来先将这块模块给收尾了。 增加单独获取内容的接口: 概述&#xff…

设计模式、Java8新特性实战 - List<T> 抽象统计组件

一、背景 在日常写代码的过程中,针对List集合,统计里面的某个属性,是经常的事情,针对List的某个属性的统计,我们目前大部分时候的代码都是这样写,每统计一个变量,就要定义一个值,且…

ATTCK实战系列-红队评估 (红日靶场3)Vulnstack三层网络域渗透靶场

文章目录 环境配置靶场介绍靶场设置 外网渗透信息收集端口扫描目录扫描 漏洞发现与利用获取ssh账号密码,登录centos 提权 内网渗透建立代理内网信息收集smb暴破,获取本地管理员密码 横向移动使用psexec模块上线msf 环境配置 靶场介绍 靶场地址 http:/…

剑指Offer 20.表示数值的字符串

20.表示数值的字符串 题目 官方地址 代码(正则表达式) public boolean isNumeric (String str) {if (str null || str.length() 0)return false;return new String(str).matches("[-]?\\d*(\\.\\d)?([eE][-]?\\d)?"); }在给定的代码…

PCIE链路信息

目录 简介: 目的: 详情: 简介: PCIe有很多寄存器,也有很多控制,包括链路状态信息,上一节我们讲到了PCie的链路训练,这节文章将继续学习PCIe相关知识。 目的: 从设计…

【Python从小白到高手】---函数基础

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【Python小白从入门到精通】🎈 本专栏旨在分享学习Python的一点学习心得,欢迎大家在评论区讨论💌 目录…

iPhone 6透明屏是什么?原理、特点、优势

iPhone 6透明屏是一种特殊的屏幕技术,它能够使手机屏幕变得透明,让用户能够透过屏幕看到手机背后的物体。 这种技术在科幻电影中经常出现,给人一种未来科技的感觉。下面将介绍iPhone 6透明屏的原理、特点以及可能的应用。 iPhone 6透明屏的原…

本地 shell无法连接centos 7 ?

1、首先检查是否安装ssh服务; yum list installed | grep openssh-server# 没有安装尝试安装下 yum install openssh-server 2、检查ssh服务是否开启 systemctl status sshd.service# 未开启,开启下 systemctl start sshd.service # 将sshd 服务添…

socker套接字

1.打印错误信息 2.socketaddr_in结构体 结构体: (部分库代码) (宏中的##) 3.manual TCP: SOCK_STREAM : 提供有序地,可靠的,全双工的,基于连接的流式服务 UDP: 面向数据报

406 · 和大于S的最小子数组

链接:LintCode 炼码 - ChatGPT!更高效的学习体验! 题解:同向双指针 九章算法 - 帮助更多程序员找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧 class Solution { public:/*** param nums: an array …