vuex是什么

是一个对 数据状态实现集中式管理 的工具。可以解决组件之间传递的问题

多组件共享状态(变量),有一个数据好多组件都用

组件数大于2,任何一个组件修改其他组件都要改变

实现组件通信

Store

每一个 Vuex 应用的核心就是 store(仓库)。“store” 基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。

使用

  1. 安装
  1. npm install vuex
  1. 创建store/index.js
  1. a. vuex
  2. impote vuex form 'vuex'
  3. b. 创建store对象
  4. const store = new Vuex.Store({
  5. states:{
  6. //全局变量
  7. },
  8. })
  9. c. 导出store
  10. export dafault store
  11. d. main.js中引入
  12. import store from "./store"
  13. new Vue({
  14. store
  15. })
基本使用
  1. 获取全局状态值 this.$store.state.xxxx
  2. 修改全局状态
    1. 同步:mutations
    2. 异步 先action 再mutation

五大属性

1.state 数据
  • 项目中共享的数据
  1. state:{
  2. name:'韩梅梅',
  3. age:'16',
  4. sex:0,
  5. phone:1231312313
  6. },
2.mutations : 同步方法
  1. //修改state里数据的唯一途径
  2. mutations:{
  3. changeStateName(state,params){
  4. // state 全局状态数据
  5. //params 通过commit 触发传递的方法
  6. console.log('修改state数据',state,params)
  7. state.name=params.us
  8. }
  9. }
  10. this.$store.commit("")//触发mutations的某一个方法,第一个参数是名字
3.actions :异步方法
  • 当vuex中出现异步,应该放到actions中,非必须

    • 可以将异步代码封装,统一管理异步
  1. // 异步存放的地方 请求成功后发起 commit
  2. actions:{
  3. getNetName(context,params){
  4. console.log('触发actions',arguments)
  5. let {commit}=context
  6. setTimeout(()=>{
  7. let name='来自星星的名字'
  8. commit('changeStateName',{us:name,ps:123})
  9. },500)
  10. }
  11. }
  12. this.$store.dispatch("") //发送一个请求,第二个参数是一个对象
4.getters : 派生属性
  • 对全局状态下的数据进行管理,类似于vue中的计算属性
  • 与state中数据进行关联,state数据改变,getter就会执行
  1. // 做数据的处理
  2. getters:{
  3. doubleName(state){
  4. return state.name+state.name
  5. }
  6. }
5.modules : 模块化
  • state会被添加模块名字,其他的不会被加模块名
  • namespace:true 命名空间,防止不同的模块有相同的名字
  1. moudles:{
  2. 'a':{
  3. state:{name:"zhangsan"},
  4. getters:{}
  5. },
  6. 'b':{
  7. state:{age:18}
  8. }
  9. }
  10. //不分模块写法:store.state.name
  11. //分模块写法:store.a(模块名).state.name
  1. a.js b.js index.js中引用
  2. import Vue from 'vue'
  3. import Vuex from 'vuex'
  4. Vue.use(Vuex)
  5. import A from './a'
  6. import B from './b'
  7. let store = new Vuex.Store({
  8. modules:{A,B}
  9. })

辅助函数

  • 值类型:state,getters

    可以通过辅助函数将值映射到内部的计算属性中

  • 函数类型:actions,mutation;

    通过辅助函数将函数映射到组件内部的方法里

映射:map ---------> mapState 、 mapGetters、 mapActions 、 mapMutations

使用

  • mapState
  1. import {mapState} from "vuex"
  2. export default{
  3. ...mapState(['name'])
  4. }
  5. //页面中的
  6. this.$store.state.name
  7. //可以写成
  8. name
  • mapGetters
  1. import {mapGetters} from "vuex"
  2. export default{
  3. ...mapGetters(['name'])
  4. }
  5. //页面中的
  6. this.$store.getters.name
  7. //可以写成
  8. name
  • mapMutations
  1. import {mapMutations} from "vuex"
  2. export default{
  3. ...mapMutations(['name'])
  4. changeName(){
  5. this.name({'name1'})
  6. //this.$store.commit('name')
  7. }
  8. }
  9. //页面中的
  10. this.$store.commit('name')
  11. //可以写成
  12. this.name('')
  • mapActions
  1. import {mapActions} from "vuex"
  2. export default{
  3. ...mapActions(['name'])
  4. changeName(){
  5. this.name({'name1'})
  6. //this.$store.dispatch('name')
  7. }
  8. }
  9. //页面中的
  10. this.$store.dispatch('name')
  11. //可以写成
  12. this.name('')

vuex 状态管理 入门的更多相关文章

  1. vuex状态管理-数据改变不刷新

    困惑: 在页面初始化的时候,我提交到vuex状态管理,然后在获取的时候获取不到,我找到了出错的地点,并进行了修改,然后可以获取到状态 但是不知道原因? 定义了如下的state const state ...

  2. 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI

    一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...

  3. vuex状态管理demo

    vuex状态管理主要包含四个概念  mapState,mapMutations,mapGetters,mapActions. 编写vuex文件夹下面的store.js import Vue from ...

  4. 前端Vue框架-vuex状态管理详解

    新人报道!多多关照-多提宝贵意见 谢谢- vuex理解 采用集中式存储管理模式.用来管理组件的状态,并以自定义规则去观测实时监听值得变化. 状态模式管理理解 属性 理解 state 驱动应用的数据源 ...

  5. 前端技术之:如何在vuex状态管理action异步调用结束后执行UI中的方法

    一.问题的起源 最近在做vue.js项目时,遇到了vuex状态管理action与vue.js方法互相通信.互操作的问题.场景如下图所示: 二.第一种解决方法 例如,我们在页面初始化的时候,需要从服务端 ...

  6. VueX状态管理器 的应用

    VueX状态管理器 cnpm i vuex axios -S 1 创建Vuex 仓库 import Vue from 'vue' import Vuex from 'vuex' vue.use(Vue ...

  7. vue第十八单元(单向数据流 vuex状态管理)

    第十八单元(单向数据流 vuex状态管理) #课程目标 1.理解什么是数据管理模式 2.什么是vuex 3.什么时候使用vuex 4.vuex安装及工作原理 5.vuex语法 #知识点 1.首先来看下 ...

  8. Vuex 状态管理的工作原理

    Vuex 状态管理的工作原理 为什么要使用 Vuex 当我们使用 Vue.js 来开发一个单页应用时,经常会遇到一些组件间共享的数据或状态,或是需要通过 props 深层传递的一些数据.在应用规模较小 ...

  9. vue 通信:父子通信、兄弟通信、跨多层通信、vuex状态管理

    之前简单做了一次vue通信方法的培训,在此记录一下培训的内容. 关于vue通信,大家最先想到的方法应该是props.ref.$emit.$parent,还有vuex,因为这也是我在项目中最常用到的方法 ...

随机推荐

  1. Collections中的常用方法

    collections中的常用方法 public class CollectionsTest { public static void main(String[] args) { List list ...

  2. typescript step by step

    如果有本 typescript的书 这个名字不错 啊 step one

  3. python接口自动化测试 - configparser配置文件解析器详细使用

    configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...

  4. ios---设置UITabBarController的字体颜色和大小

    +(void)load{ NSMutableDictionary *attr3=[NSMutableDictionary dictionary]; attr3[NSForegroundColorAtt ...

  5. docker扫盲,面试连这都不会就等着挂吧!

    现在很多公司项目部署都是采用K8S docker容器方式,出门面试被问的概率极大,如果被面试官问docker相关知识点直接懵逼,那么基本就是被pass了,除非其他方面技术过硬.所以这种相对前沿的技术, ...

  6. Iptables和Firewall-selinux

    一.Iptables防火墙 ---------- **三表五链:**三表: filter过滤表 nat转换表 mangle表五链: PREROUTING--->在进行路由选择前处理数据包 INP ...

  7. C语言创建文件

    问题需求:使用程序创建一个文件(当该文件不存在时则创建). 代码如下: // 创建文件 void CreateFile() { //文件指针 FILE *fileP; char fileName[] ...

  8. OpenCV3入门(四)图像的基础操作

    1.访问图像像素 1)灰度图像 2)彩色图像 OpenCV中的颜色顺序是BGR而不是RGB. 访问图像的像素在OpenCV中就是访问Mat矩阵,常用的有三种方法. at定位符访问 Mat数据结构,操作 ...

  9. 浅谈C语言的数据存储(一)

    作者:冯老师,华清远见嵌入式学院讲师. 程序由指令和数据组成,C语言程序亦是如此.开发者在编写程序的时候往往需要根据不同数据的特点以及程序需求来选择不同的数据存储方式,那么在C语言中数据的存储分为哪些 ...

  10. python 中的反斜杠匹配的问题

    关于反斜杠的匹配问题可以参考: https://www.cnblogs.com/mzc1997/p/7689235.html 文章中提出了两个概念: 字符串转义和正则转义,我觉得是理解反斜杠的关键所在 ...