vueX

vueX

​ 如果要开发中大型应用,集中式管理数据,多个组件依赖于同一状态,来自不同组件的行为需要变更同一状态,生态环境给我们提供了官方插件vuex

一、vueX的作用

​ vue单页面应用中,每个组件内部的数据在data中存放,供vue组件内部使用,但是,vue组件之间的数据共享怎么办?即A组件要使用B组件里的数据怎么办?

​ 如果A组件和B组件是父子关系,使用,prop和事件;如果不是父子关系怎么办?使用vueX,vueX能够简化组件之间的数据共享。特别是多个组件(A,B,C,D……)共享一个数据。

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

1、vueX 能够保存全局数据,供整个应用使用

2、vueX 保存的数据是响应式的

3、vueX 保存的数据可以跟踪状态的变化

二、vuex的解释

1、vueX是个对象,该对象有个属性Store。Store是个类。

2、Store类的实例方法和属性

成员用途
dispatch实例方法,通讯工具,派发action
commit实例方法,通讯工具,提交mutation
state属性,获取公共数据

三、vueX的核心概念

1、state :

数据仓库 ,存储所有的共享数据 ,相当于vue组件里的data

2、Getter :

在state的基础上派生的数据, 相当于vue组件里 computed

3、Mutation:

修改state的数据时,用mutation,这与 跟踪状态 有关系

4、Action:

解决mutation里只能有同步代码的问题,而action里可以有异步代码

四、数据流转

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1eRjL6U5-1593834044627)(C:\Users\31759\AppData\Roaming\Typora\typora-user-images\1592380401640.png)]

五、使用步骤

1、安装

npm i vueX --save

2、Vue对象中注册全局对象(模块)

// src/main.js

import Vue from 'vue'
import store from './store'; //这是vueX的代码
import App from './App'

Vue.config.productionTip = false


/* eslint-disable no-new */

new Vue({
  el: '#app', 
  store,//把引入的store模块注册在vue实例中,可以使用this.$store来使用该模块对象
  components: { App },
  template: '<App/>'
})

3、Vuex的代码

// src/tore/index.js代码:

import Vue  from 'vue'
//引入vueX的包
import Vuex from 'vuex'
//安装vueX插件包到vue上
Vue.use(Vuex)

export default new Vuex.Store({
    state:{
         age:12
      }
    getters:{
    	isAdult:state => {
            return state.age>=18?true:false;
        }
	},
    //Getter 会暴露为 store.getters对象,
    //可以以属性的形式访问这些值:store.getters.isAdult;
                              
    mutations: {
      increment (state) {
          // 变更状态
          state.count++
      }
   },
       
    actions: {
   		 increment (context) {
     		 context.commit('increment')
   		 }
    }
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值