肥宅钓鱼网
当前位置: 首页 钓鱼百科

vuex原理及使用方法(vue框架中vuex的作用是什么)

时间:2023-08-14 作者: 小编 阅读量: 4 栏目名: 钓鱼百科

它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。把组件的共享状态抽取出来,以一个全局单例模式管理。这就是“状态管理模式”。

点击右上方红色按钮关注“web秀”,让你真正秀起来

前言

前段时间,有小伙伴问我,Vuex是怎么玩儿的?也是一直没有机会,趁着今天有空,一起来学习一波。

本文章你能学到什么?

1、Vuex是什么?哪种功能场景使用它?

2、Vuex有哪几种属性?

3、使用Vuex的好处?

4、使用Vuex示例。

5、Vuex常见错误。

下面我们来详细讲讲!

Vuex是什么?哪种功能场景使用它?

官方话:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

简单的说:Vuex是vue框架中状态管理。

这里就又出现一个问题:那什么是“状态管理模式”?

什么是“状态管理模式”?

把组件的共享状态抽取出来,以一个全局单例模式管理。在这种模式下,我们的组件树构成了一个巨大的“视图”,不管在树的哪个位置,任何组件都能获取状态或者触发行为!这就是“状态管理模式”。

应用场景有:单页应用中,组件之间的数据状态。 应用实例: 1、购物车功能; 2、下单页面有选择优惠券按钮,点击进入优惠券页面,选择后返回到下单页,数据会绑定回来,显示已选择的优惠券; 3、登录状态等等

Vuex有哪几种属性?

有五种,分别是 State、 Getter、Mutation 、Action、 Module

Vuex的State特性

1、Vuex就是一个仓库,仓库里面放了很多对象。其中state就是数据源存放地,对应于一般Vue对象里面的data

2、state里面存放的数据是响应式的,Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新

3、它通过mapState把全局的 state 和 getters 映射到当前组件的 computed 计算属性中

Vuex的Getter特性

1、getters 可以对State进行计算操作,它就是Store的计算属性

2、虽然在组件内也可以做计算属性,但是getters 可以在多组件之间复用

3、如果一个状态只在一个组件内使用,是可以不用getters

Vuex的Mutation特性

Action 类似于 mutation,不同在于:Action 提交的是 mutation,而不是直接变更状态;Action 可以包含任意异步操作。

Vuex的Module特性

Module 可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。

const moduleA = {state: { ... },mutations: { ... },actions: { ... },getters: { ... } } const moduleB = {state: { ... },mutations: { ... },actions: { ... } }const store = new Vuex.Store({modules: {a: moduleA,b: moduleB })

使用Vuex的好处?

1、多层嵌套的组件、兄弟组件间的状态会更好管理维护。

2、缓存一些当前要使用请求远程或本地的数据集(刷新后会自己销毁)。

3、有了第二条,就可以减少向服务器的请求,节省资源。如果你的用户足够多,那么每多出一个请求,对公司来说,都是一大笔钱。

4、对开发者来说,如果你的项目足够复杂,团队的规模也不仅是一个人,数据集中处理更利于程序的稳定和维护。

使用Vuex示例

npm install vuex --save<template> <div > <span>count = {{$store.state.count}}</span> <button @click="increment"> 5</button> <button @click="decrement">-3</button> </div></template><script> // 引入mapActions,很重要 import {mapGetters,mapActions} from 'vuex' export default{ //与vuex中的getters关联 computed: mapGetters([ ]), //与vuex中的actions关联 methods: mapActions([ 'increment', 'decrement' ]) }</script>

创建一个vuex文件夹,文件夹里面创建一个store.js文件

import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)// 首先声明一个状态 stateconst state = { count: 0}// 然后给 actions 注册事件处理函数,当这个函数被触发时,将状态提交到 mutaions中处理const actions = { increment: ({ commit }) => commit('increment'), // 提交到mutations中处理 decrement: ({ commit }) => commit('decrement')}// 更新状态const mutations = { increment (state) { state.count = state.count5 }, decrement (state) { state.count = state.count - 3 }}// 获取状态信息const getters = {}// 下面这个相当关键了,所有模块,注册才能使用export default new Vuex.Store({ state, mutations, actions, getters})

要在main.js声明全局

...import store from './vuex/store';...new Vue({ ... store ...})

Vuex常见错误

很多时候,总是不知不觉的直接改变 store 中的状态。这就导致了一个非常常见的错误:Do not mutate vuex store state outside mutation handlers.

改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation

...this.store.commit('increment', 10);

改变一下store.js文件

...const mutations = { increment (state, params) { // params=10 }}...

公告

喜欢小编的点击关注,了解更多知识!

源码地址,可以点击下方“了解更多”获取!

    推荐阅读
  • 桑螵蛸猪肚汤怎么做(桑螵蛸猪肚汤做法介绍)

    下面内容希望能帮助到你,我们来一起看看吧!桑螵蛸猪肚汤怎么做原料:猪小肚2个,桑螵蛸15克,杜仲12克,淮山药30克,生姜4片。猪小肚割去残留肥肉,用清水反复漂洗,再用盐腌,洗净,入开水中焯熟,备用;桑螵蛸、杜仲、淮山、生姜洗净。全部用料放加锅内,加清水适量,武火煮沸后,文火煲约l一2小时,调味供用。桑螵蛸猪肚汤功效:补肾缩尿。

  • 埃尔法使用什么变速箱 埃尔法cvt变速箱

    纯汽油版埃尔法的前悬架采用麦弗逊式独立悬架,后悬架采用多连杆式独立悬架。Erffa的发动机有四个气缸,进气方式为自然吸气,每个气缸有四个气门。国内销售的车型全部依赖进口,而2019年4月推出的混动版车型仅销售2019款。2019款车型中只有两款是油电混动车型,售价分别为80.5万元和85.6万元。混合动力版埃尔法前后悬架为麦弗逊式独立悬架和双叉臂式独立悬架,助力模式为电动助力。Erffa混动版前后刹车为通风盘式,驻车刹车类型为电子驻车。

  • 每天练琴要固定时间吗(每天练琴还无效)

    可效果如果还是不明显的话,说明练琴的效率不高。而没有实质性的辅助,这样下来,当然没有什么效果。这样避免练琴中因一些琐事,频繁打断思路,导致思想不能高度集中。可以练习《哈农》、《施密特》,各类大小调音阶琶音,属七减七和弦。特别是待会要弹的乐曲的所属调和转调的音阶,这类可以着重练习。

  • 秋葵脆的热量高吗(秋葵脆的热量高吗减肥能吃吗)

    所以如果是将新鲜秋葵直接经过脱水等工序制作而成的秋葵脆的话,其热量也是不高的,食用后也不会容易导致长胖。

  • 无糖酸奶过期5天还能喝吗(无糖酸奶过期5天是否还能喝)

    接下来我们就一起去了解一下吧!无糖酸奶过期5天还能喝吗过了期的酸奶是不能饮用的,平时人们饮用酸奶是因为酸奶中含有有益菌,这种有益菌可以促进人体的消化功能。人再去饮用,就失掉了它本来的意义。而且已经过期的酸奶里面可能会衍生出多种微生物,进入身体后,可能会造成细菌感染,从而引起拉肚子等症状,所以喝酸奶前一定要注意酸奶的保质期。

  • 用纸做的老式灯笼(手工纸灯笼承载老人幸福梦)

    用纸做的老式灯笼2月9日,在彬州市城关街道东关村,杨胜科和他的老伴、两个孙女正围坐在火炉旁,娴熟地制作着手工纸灯笼,一家人欢声笑语,其乐融融。喜庆的红灯笼在杨胜科的记忆里,除了美好祝福还有另一份情结。今年60岁的杨胜科从记事起,他的父辈每年都会制做纸灯笼,至今爷孙几代传承手艺已经快80年了。

  • c开头的英语单词(c开头的英语单词举例)

    callous无情的candid忠诚的直率的,今天小编就来聊一聊关于c开头的英语单词?接下来我们就一起去研究一下吧!

  • 盐与献祭力量流用什么武器

    另外过程中也可以抽空学一级禁忌符文,这样就能用火刀技能了,不过火刀技能我不太用,因为要浪费一轮攻击机会,有这时间我不如多丢两飞斧或者多砍两刀。神圣符文是一定要学1级的,时间大刀的技能效果是攻击力提高50%同时时停周围小范围的敌人5秒,因为能定住BOSS所以非常离谱。大地法师是第二张图;龙法师是第四张图比较后期。该攻略收集整理自网络,如果您是原作者需要署名,请联系我们。

  • 天津滨海新区智慧城市(五新路径探索新型智慧城市滨海模式)

    新发展理念引领新型智慧城市建设“十三五”以来,滨海新区区委区政府以“善政、惠民、兴业”为目标,高质量规划部署推进新型智慧城市建设。协调是内在需求。2021年10月17日,全球首个“智慧零碳”码头一天津港北疆港区C段智能化集装箱码头正式投产运营。作为全国首批智慧城市试点,中新天津生态城不断深化城市大脑建设,智慧小区、智能公交、智慧图书馆一系列智能化基础设备早已经成为区域标配。每小时内分拣数量一千五百册左右。

  • 电解铝行业布局(2030年前有色金属行业实现碳达峰)

    确保2030年前有色金属行业实现碳达峰。新兴金属上涨动力强能源金属、稀土金属在有色金属领域强势崛起。2022年至今,电池级碳酸锂和工业级碳酸锂价格持续大幅上涨并创下历史新高,钴价受到原料进口受限及海外合金需求复苏影响价格持续高位。稀土金属也受益于新能源车、工业电机、工业机器人等领域发展,下游需求旺盛需求,价格持续向好。