vuex基础

vuex概述

# 优点:
	js 原生的数据对象写法, 比起 localStorage 不需要做转换, 使用方便
	属于 vue 生态一环, 能够触发响应式的渲染页面更新 (localStorage 就不会)
	限定了一种可预测的方式改变数据, 避免大项目中, 数据不小心的污染

# 缺点:
	刷新浏览器,vuex中的state会重新变为初始状态
 	解决方案-插件 vuex-persistedstate
//组件之间数据共享方式
# 1.安装vuex
  npm i vuex -S

# 2.导入vuex 包
  import Vuex from 'vuex'
  VUe.use(Vuex)

# 3.创建Store 对象
  const store = new Vuex.Store({
      //state 中存放就是全局共享数据
      state: { count: 0 }
  })
  
# 4.将store 对象挂载到vue 实例中
  new Vue({
      el: '#app',
      router,
      store
  })

组件访问State 中的数据的第一种方式:
this.$store.state.全局数据名称

store.js

export default new Vuex.Store({
    //state公共状态仓库
    state: { n: 0 },  
    //操作state中数据的同步代码
    mutations: {
        addN(state, x) {
            this.state.n += x  
        }list(e, x) {}  //接收action中触发的方法
    }, 
    //操作actions中的数据的异步代码
    actions: {
        reduceN(context, x) {
            setTimeout(() => {
                this.state.n -= x
                context.commit('list', 3)  //action中通过.commit方法触发一个list方法,并且携带一个参数
            }, 1000)
        }
    },  
    modules: {}
})

app.vue

methods: {
	add() {
        this.$store.commit('addN', 3)	//触发上面mutations中的 addN函数并添加一个参数3、选填
    },
    reduce() {
        this.$store.dispatch('reduceN', 3)	//触发上面actions中的 reduceN函数并添加一个参数3,选填
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只管挖坑不管埋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值