vuex的核心概念和基本使用详解

目录
  • 介绍
  • 开始
    • 安装
      • ①直接下载方式
      • ②CND方式
      • ③NPM方式
      • ④Yarn方式
    • NPM方式安装的使用方式
  • store概念及使用
    • 概念:
    • 定义
    • 使用
  • mutations概念及使用
    • 概念:
    • 使用:
    • 定义
    • 使用
  • action概念及使用
    • 概念:
    • 定义
    • 使用
  • getters概念及使用
    • 概念:
    • 定义
    • 使用
  • 总结

介绍

Vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间的数据共享

开始

安装

①直接下载方式

创建一个 vuex.js 文件 将https://unpkg.com/vuex这个网址里的内容放到该文件夹里。

②CND方式

<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js"></script>

③NPM方式

npm install vuex --save

④Yarn方式

yarn add vuex

NPM方式安装的使用方式

1.在 scr 文件里创建一个 store / index.js 的文件夹,写入以下内容。

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {},
mutations: {},
actions: {},
modules: {}
})

2.在main.js 里引入,然后挂载到 Vue 实例里

import Vue from 'vue'
import store from './store'
new Vue({
  render: h => h(App),
  store
}).$mount('#app')

store概念及使用

概念:

就是组件之间共享数据的。

只有 mutations 才能修改 store 中的数据

使用:

先定义后使用

定义

state: {
  num: 0
}

使用

方式1(推荐)

<div>{{ numAlias }}</div>

import { mapState } from 'vuex'
export default {
  //计算函数
  computed: mapState({
    // 传字符串参数 'count' 等同于 `state => state.count`
    numAlias: 'num',//常用key是自己起的名随便 value接收的数据
    // 箭头函数可使代码更简练
    count: state => state.count,
    // 为了能够使用 `this` 获取局部状态,必须使用常规函数
    countPlusLocalState (state) {
      return state.count + this.localCount
    }
    //可以定义其余的计算函数
  }),
  //或者这样
  //计算函数
  computed: {
    mapState(['count'])
  }
}

方式2

<div>{{ $store.state.count }}</div>

mutations概念及使用

概念:

修改store里的数据,严格规定不能在其余的地方修改store的数据,mutations里不要执行异步操作。

mutation 必须同步执行,不能异步执行。

使用:

先定义方法后使用

定义

mutations: {
	//increment自定义方法 store参数是store数据, parameter参数是接收到的数据,可不要
    increment (state, parameter) {
        // 变更状态
        state.num++
    }
}

使用

方式1(推荐使用)

import { mapState, mapMutations } from 'vuex'
//方法
methods: {
	...mapMutations([
	    // mutations自定义的方法名
    	'increment'
    ]),
    love() {
    	// 直接this调用 this.increment('需要传过去的数据,可不要')
        this.increment('Bin')
    }
}

方式2

methods: {
    love() {
    	// this.$store.commit('自定义的名称', '传过去的数据,可不传')
    	this.$store.commit('increment', 'data')
    }
}

action概念及使用

概念:

用于处理异步操作。

如果通过异步操作变更数据,必须通过action,而不能使用mutation,但是在action中还是要通过触发mutation的方式间接变更数据。

Action 类似于 mutation,不同在于:

  • Action 提交的是 mutation,而不是直接变更数据(状态)。
  • Action 可以包含任意异步操作。

定义

mutations: {
	//increment自定义方法 store参数是store数据, parameter参数是接收到的数据,可不要
    increment (state, parameter) {
        // 变更状态
        state.num++
    }
},
actions: {
	//add 自定义方法 context是参数,可以把它当作vuex的实例
    add(context) {
    	//可以通过context.commit('mutations中需要调用的方法')
    	context.commit('increment')
    }
}

使用

方式1(推荐)

import { mapState, mapMutations, mapActions } from 'vuex'
export default {
  methods: {
    ...mapActions([
      'add', // 将 `this.add()` 映射为 `this.$store.dispatch('add')`
      // `mapActions` 也支持载荷:
      'add' // 将 `this.add(amount)` 映射为 `this.$store.dispatch('add', amount)`
    ]),
    ...mapActions({
      add: 'add' // 将 `this.add()` 映射为 `this.$store.dispatch('increment')`
    }),
    love() {
    	// 直接this调用 this.add('需要传过去的数据,可不要')
    	this.add(data)
    }
  }
}

方式2

methods: {
    love() {
    	// this.$store.dispatch('自定义的名称', '传过去的数据,可不传')
    	this.$store.dispatch('add', data)
    }
}

getters概念及使用

概念:

getter用于对store中的数据进行加工处理形成新的数据。getting可以对store中已有的数据加工处理之后形成新的数据,类似Vue的计算缩写。

定义

state: {
  num: 0
},
getters: {
    doneTodos: state => {
    	return state.num = 10
    }
}

使用

方式1(推荐)

<div>{{ doneTodos }}</div>

import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'
export default {
  //计算函数
  computed: {
  	...mapState(['count']),
  	...mapmapGetters(['doneTodos'])
  }
}

方式2

<div>{{ $store.getters.doneTodos }}</div>

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Vuex 模块化使用详解

    前言 上回我们说了一下 vuex 的简单使用,最后面的时候有说了,由于使用单一状态树,应用的所有状态会集中到一个比较大的对象.当应用变得非常复杂时,store 对象就有可能变得相当臃肿. 为了解决以上问题,Vuex 允许我们将 store 分割成模块(module).每个模块拥有自己的 state.mutation.action.getter.甚至是嵌套子模块--从上至下进行同样方式的分割,今天我们也来简单了解一下他的使用,深入学习可能还是要去看官方文档 1 文件结构 文件结构的话,模块化的使用

  • vuex的使用和简易实现

    这里记录一下vuex的使用和vuex的简易实现 首先创建对应的store目录和对应的入口index.js import Vue from 'vue' import Vuex from 'vuex' import products from './modules/products' import cart from './modules/cart' Vue.use(Vuex) export default new Vuex.Store({ strict: process.env.NODE_ENV

  • vuex的使用步骤

    一.使用Vuex的目的 实现多组件状态管理.多个组件之间需要数据共享时,Vuex是个很好的帮手哦 二.Vuex 的五大核心 其中state和mutation是必须的,其他可根据需求来加 1.state 负责状态管理,类似于vue中的data,用于初始化数据 2.mutation 专用于修改state中的数据,通过commit触发 3.action 可以处理异步,通过dispatch触发,不能直接修改state,首先在组件中通过dispatch触发action,然后在action函数内部commi

  • vue基础入门之vuex安装与使用

    目录 1.什么是vuex 2.安装和引入 3.vuex的使用 4.流程介绍 5.mutation 6.getters过滤 7.Action--异步处理 8.Module 总结 本教程为入门教程,如有错误,请各位前端大佬指出. 1.什么是vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.详细介绍可以参照官网文档vuex.vuejs.org/zh/ 下面简单介绍vuex 2.安装和引入

  • vuex vue简单使用知识点总结

    vue概念:vuex 是 Vue 配套的 公共数据管理工具,它可以把一些共享的数据,保存到 vuex 中,方便 整个程序中的任何组件直接获取或修改我们的公共数据: 配置vuex的步骤: 1.运行cnpm i vuex -S 2.导包 import Vuex from 'vuex' 3.将vuex注册到vue中 Vue.use(Vuex) 4.new Vuex.Store() 实例,得到一个 数据仓储对象 var store = new Vuex.Store({ state: { // 大家可以把

  • Vuex的基本概念、项目搭建以及入坑点

    前言:Vuex是一个专门为Vue.js应用程序开发的状态管理模式, 它采用集中式存储管理所有组件的公共状态, 并以相应的规则保证状态以一种可预测的方式发生变化. Vuex的四大核心 1.state 驱动应用的数据源 2.mutations 基因突变 类如C# 属性get set 3.actions 行为 4.getters 读取器 上图中绿色虚线包裹起来的部分就是Vuex的核心, state 中保存的就是公共状态, 改变 state 的唯一方式就是通过 mutations 进行更改. 可能你现在

  • vuex的核心概念和基本使用详解

    目录 介绍 开始 安装 ①直接下载方式 ②CND方式 ③NPM方式 ④Yarn方式 NPM方式安装的使用方式 store概念及使用 概念: 定义 使用 mutations概念及使用 概念: 使用: 定义 使用 action概念及使用 概念: 定义 使用 getters概念及使用 概念: 定义 使用 总结 介绍 Vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间的数据共享 开始 安装 ①直接下载方式 创建一个 vuex.js 文件 将https://unpkg.com/vue

  • Ceph集群CephFS文件存储核心概念及部署使用详解

    目录 1.CephFS文件存储核心概念 1.1.CephFS文件存储简介 1.2.CephFS文件存储架构 1.3.CephFS文件系统的应用场景与特性 2.在Ceph集群中部署MDS组件 3.在Ceph集群中创建一个CephFS文件存储系统 3.1.为CephFS文件存储系统创建Pool资源池 3.2.创建CephFS文件系统 3.3.再次观察Ceph集群的状态 4.内核级别挂载CephFS文件系统 4.1.无需认证的方式挂载CephFS文件系统 4.2.使用认证方式挂载CephFS文件系统

  • Spring之底层架构核心概念Environment及用法详解

    目录 1.Environment作用 2.用法 2.1 systemEnvironment 和 systemProperties 2.2 MutablePropertySources 3.实际用法 4.总结 1.Environment作用 Environment:获取环境变量 2.用法 2.1 systemEnvironment 和 systemProperties public static void main(String[] args) { AnnotationConfigApplicat

  • Vuex中mutations与actions的区别详解

    区分 actions 和 mutations 并不是为了解决竞态问题,而是为了能用 devtools 追踪状态变化. 事实上在 vuex 里面 actions 只是一个架构性的概念,并不是必须的,说到底只是一个函数,你在里面想干嘛都可以,只要最后触发 mutation 就行.异步竞态怎么处理那是用户自己的事情. vuex 真正限制你的只有 mutation 必须是同步的这一点(在 redux 里面就好像 reducer 必须同步返回下一个状态一样).同步的意义在于这样每一个 mutation 执

  • vuex state及mapState的基础用法详解

    先使用vue cli构建一个自己的vue项目 1.npm i -g vue-cli 2.vue init webpack sell (sell是你的项目名) 3.一路回车(在这个过程中会提示你是否安装一些依赖包,比如vue-router,es6语法检查等等,这些根据你个人习惯或者癖好选择Y/N) 4.npm i (这个是安装项目的依赖包) 5.npm run dev(启动你的vue项目) 这个时候如果在页面上看到了vue的logo说明你的vue的项目基础构建已经完成,然后你可以删除掉没有用的组件

  • vuex actions异步修改状态的实例详解

    actions异步修改状态与mutations同步修改状态是两个容易混淆的概念,因为两者在执行上,很难测试出两者的差别,而我们要区别它们两,首先你得区分同步与异步,我的理解是,同步更像是一条流水线作业,而异步则更像是多条,例子你比如打电话,我们通常是我打给我妈,打完之后,再跟我爸打,而异步更像是某聊天工具,你既可以跟你爸聊,又可以跟你妈聊,你跟你妈聊可以在你爸的后面,也可以在他前面,你爸也是 而actions与mutations的区别就在此,mutations是你进行用百度钱包买一件商品时,你必

  • Vuex中状态管理器的使用详解

    目录 一.Vuex是什么? 二.什么时候使用Vuex 三.Vuex的核心概念和API 四.应用举例 五.vuex中各种辅助函数的用法,可以使我们更加方便的运用vuex 一.Vuex是什么? Vuex在Vue项目开发时使用的状态管理工具.简单来说,就是对Vue的应用中多个组件的共享状态进行集中式的管理(读/写) Vuex实现了一个单向数据流,在全局拥有一个State存放数据,当组件要更改State中的数据时,必须通过Mutation进行,Mutation同时提供了订阅者模式供外部插件调用获取Sta

  • Iptables防火墙四表五链概念及使用技巧详解

    目录 1.链的概念 2.Iptables五种链的概念 3.Iptables数据流向经过的表 4.Iptables防火墙四种表的概念 5.Iptables防火墙表与链之间的优先级概念 6.Iptables防火墙表和链之间的使用技巧 **问题1:** **问题2:** 结论: 7.Iptables防火墙几种动作 1.链的概念 在防火墙中,用户想要成功进入内网环境,就需要发送请求报文,请求报文要和防火墙设置的各种规则进行匹配和判断,最后执行相应的动作(放行或者拒绝),一个防火墙中通常针对不同的来源设置

  • Spring AOP的概念与实现过程详解

    目录 Aop 实现aop方式一 实现aop方式二 注解实现aop Aop 什么是Aop? AOP就是面向切面编程,通过预编译方式以及运行期间的动态代理技术来实现程序的统一维护功能. 什么是切面,我理解的切面就是两个方法之间,两个对象之间,两个模块之间就是一个切面.假设在两个模块之间需要共同执行一系列操作,并且最后将这一系列操作注入到两个模块之间的指定位置.此时这一系列操作就是切面,注入这些操作的位置称之为切点. 举例:公司员工上班 A员工上班需要在前台进行打卡,同样的B员工…其他员工都需要在前台

  • web前端vue之vuex单独一文件使用方式实例详解

    Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试.状态快照导入导出等高级调试功能. 上次我用了一个加减的例子为大家讲解vuex的基本的使用方式,和在什么样的情况下使用.上次还是在一个组件内把这个例子简单的展示了下,这次我把vuex抽离出来一个

随机推荐