VueX使用简明笔记

news/2024/11/14 13:10:35/

1、作用:

vuex是使用vue中必不可少的一部分,基于父子、兄弟组件,我们传值可能会很方便,但是如果是没有关联的组件之间要使用同一组数据,就显得很无能为力,那么vuex就很好的解决了我们这种问题,它相当于一个公共仓库,保存着所有组件都能共用的数据
在这里插入图片描述

说明:本文仅限于你已经知道vuex是做什么的,但是对于具体怎么用比较陌生,或者忘记了,的一份笔记,不讲述具体原理。

2、安装并导入vuex:

2.1安装

版本对应关系:
vue 2 —> vuex3
vue 3 —> vuex4

npm install vuex@3 --save

2.2 导入

在项目的main.js中导入:

import Vue from 'vue'
import App from './App.vue'
//导入
import store from './store/index'
Vue.config.productionTip = false
new Vue({render: h => h(App),//配置vuex ,store:store,同名,所以简写了。store
}).$mount('#app')

3、创建store

在脚手架目录的src目录下,新建目录store

在建好的store目录内,新建文件:index.js

import Vuex from 'vuex'
import Vue from 'vue'//导入子模块,如果有的话
import person from './person'
Vue.use(Vuex)// 创建Vuex对象
const store = new Vuex.Store({//简单数据: 保存的全局状态变量state: {//定义数据},// 同步,用于操作、改变数据mutations: {// 定义方法方法名(state, payload){state.变量名 //读取数据payload //传进来的值}},// 异步:业务处理、等待异步、请求等,不建议这里操作改变数据,actions: {// 定义方法方法名(context, payload){//actions逻辑处理完成后,commit传递到mutations中操作处理数据context.commit(mutations中的方法名,payload是传进来的值)}},//计算属性getters:{// 定义方法方法名(state){return state.数据 处理后}},// 子模块 ,如果有modules: {person}})
// 导出vuex
export default store 

4、创建独立模块(非必须)

如果需要的话,在sorte目录下创建独立模块,并在index.js中导入并引用

子模块示例person.js

export default {namespaced: true,    // 开启自定义的命名空间名称//全局数据state: {p:{name:'张三',age:18}},//同步: 改变数据mutations: {// 定义方法},// 异步:改变数据,不建议actions: {// 定义方法}}

5、使用vuex

5.1按需导入

//以下映射模块,按需导入//mapState把store中的state映射到-计算属性
import { mapState } from 'vuex';
// mapMutations把store中的方法映射到-methods
import { mapMutations } from 'vuex';
// mapActions把vuex中的actions映射到-methods
import { mapActions } from 'vuex';// mapGetters 把getters 中的数据映射到-计算属性
import { mapGetters } from 'vuex';

5.2 映射的三种写法

可能不止三种,这是我用到和知道的

 // 写法1...mapState(['count', 'app']),// 写法2...mapState({c: 'count', //相当于给数据count起了一个别名ca: "app"}),// 写法3 针对子模块...mapState('person', // 指定子模块的命名空间名称['p'] //state状态变量中的数据)

需要注意的是:
mapStatemapGetters 是在计算属性中
mapActionsmapMutations 是在 methods中
千万别搞错了!!!

5.3 数据和方法的使用

配置好上面的映射,就可以使用了

this.数据名    //如:this.count
this.方法名(传值) //如:this.addOne(1)

或者像使用本组价数据一样,使用插值语法

6、未映射写法:


//  调用mapActions写法,传入方法名,值
this.$store.dispatch("asynAdd",1)//  调用Mutations写法,传入方法名,值
this.$store.commit("addcount",10)//  调用getters写法  xxx为getters中的函数名
this.$store.getters.xxx//  子模块 调用写法
this.$store.commit('product/addList', this.value3) 
...

http://www.ppmy.cn/news/301512.html

相关文章

MySQL——约束(constraint)

本篇文章总结一下MySQL中的约束,为什么要使用约束?什么是约束以及约束的分类。数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。 1…

五千的手机和两三千的手机使用起来有什么不一样?有必要买贵的吗?

现在智能手机的价格差距很大,大多数网友可能会选择2000元左右的主流手机,毕竟这个价格对于大多数人来说都能够消费得起。也有一些收入比较高的用户会选择5000元价位的高端手机。那么2000元的手机和5000元的手机比起来有什么区别呢? 这里为了…

华为如成功出售荣耀品牌,可能给其他国产手机带来压力

随着众多媒体的报道,荣耀品牌被出售似乎即将成为现实,这必然会对国内智能手机市场造成重大影响,柏铭科技认为小米手机将因此承受压力。 荣耀品牌成立于2013年底,随后的2014年取得2000万出货量,2015年翻倍至4000万&…

免费送新款华为手机!!不爱可折现!

转眼间,又快到年底了! 今年可谓跌宕起伏的一年,发生了很多大事。但无论怎样,日子还得照过,工作还得继续。在工作和学习之余,这次给大家送点福利,赠送一部 华为荣耀X10 Max 8GB128GB竞速蓝&#…

不选择华为手机的4个原因,主要还是售价太高,其实华为也没办法

不选择华为手机的4个原因,主要还是售价太高,其实华为也没办法 华为手机目前算是国内手机行业的领先者,毕竟在全球手机市场上成功的击败了iPhone,位居全球第二,这使国内很多人都为华为公司感到骄傲,但是国内…

HarmonyOS支持的手机型号汇总

鸿蒙系统在哪些手机支持使用 鸿蒙操作系统负责人王成录接受媒体采访时表示,华为今年搭载鸿蒙设备的目标,保守估计是3亿台。其中包括手机2亿;Pad、手表、智慧屏、音箱等3000万台以上,以及合作伙伴设备等。 HarmonyOS (鸿蒙操作系统)能支持的…

nova6se能升级鸿蒙,用的Nova4高配8+128,想换3000左右的手机求推荐?

划重点:①之前用的Nova4高配、②预算3000左右。 从这两点可以提取到一个很重要的信息,这多半是位女性用户,所以我们就不一股脑的推荐哪些主打性价比的手机了。同时强调用的高配,这说明自己对性能多少还是有点要求,最关…

华为mate30epro支不支持鸿蒙,听我一句劝,华为手机可以支持,但这4款不要买

原标题:听我一句劝,华为手机可以支持,但这4款不要买 如今的华为举步维艰,正在努力推进新机的发布,不断的打磨鸿蒙操作系统,华为的这份坚定意志可歌可泣,但有一说一,华为手机可以支持…