IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 快速了解 Vuex -> 正文阅读

[JavaScript知识库]快速了解 Vuex

Vuex

一、什么是Vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化

二、为什么使用Vuex

如果一个项目频繁使用组件之间的关系,来修改data中的值。一旦项目规模庞大起来,那么管理这些数据会非常棘手。

为此Vue官网为这些频繁需要修改并且监测其变化的数值,提供了一个管理工具就是 Vuex

三、如何使用Vuex

核心概念

每一个vuex都是一个store对象,每个对象都有以下5个核心概念

  • state:定义共享数据源
  • mutations:唯一可以同步修改共享数据源的数据操作员
  • actions:可以异步操作,但是不能直接修改state数据源,需要commit到mutations
  • getters: vuex的计算属性,当数据需要依赖state中的一个数据或者多个数据计算得来的话,可以定义到这里
  • modules: 分模块,让代码更加清晰,便于维护

使用方式

两种 使用方式

  • state

    直接使用

    this.$store.state.state中的数据名
    

    映射使用

    import { mapState } from 'vuex'
    export default {
      computed: {
        // 在 template 中配合 指令、插值表达式使用
       ...mapState(['state中的属性名'])
       }
     }
    
  • mutations

    直接使用

    this.$store.commit('mutaitions的函数名',函数需要的参数)
    

    映射使用

    import { mapMutations } from 'vuex'
    export default {
        methods: {
            ...mapMutations(['mutations中的函数名'])
            // 自定义需要的方法,使用mutations来修改state中的数据
            addFn(){
        		// this.mutations中的函数名
    		}
        }
    }
    
  • actions

    直接使用

    this.$store.dispatch('actions中的函数名',该函数需要的参数)
    

    映射使用

    import { mapActions } from 'vuex'
    export default {
        methods: {
            ...mapActions(['actions函数名'])
            asyncSubFn(){
        		// this.actions函数名
    		}
        }
    }
    
  • getters

    直接使用

    this.$store.getters.getters的名字
    

    映射使用

    import { mapGetters } from 'vuex'
    export default {
        computed: {
            // 在 template 中配合 指令、插值表达式使用
            ...mapGetters(['getters的名字'])
        }
    }
    
  • modules

    分模块

    const store = new Vuex.Store({
        modules: {
            state(){},
            mutations:{},
            actions:{},
            getters:{},
            // ...可以继续在这里分模块
        }
    })
    
    对取值造成的影响

    对state取值有影响,对其他暂无影响

    无论是直接使用还是映射使用,都需要带上模块名

总结

  • state和getters 都是数据源,映射到组件的 computed 节点上,当做计算属性使用
  • mutations 和 actions 都是操作数据的,映射到组件的 methods 节点上,当做函数使用
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:07:20  更:2021-07-27 16:08:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 22:26:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码