解决vuex刷新状态初始化的方法实现


Posted in Javascript onAugust 15, 2019

vuex五种基本对象

  • state:存储状态(变量)
  • getters:对数据获取之前的再次编译,可以理解为state的计算属性。我们在组件中使用$sotre.getters.fun()
  • mutations:修改状态,并且是同步的。在组件中使用$store.commit('',params)。这个和我们组件中的自定义事件类似。
  • actions:异步操作。在组件中使用是$store.dispath('')
  • modules:store的子模块,为了开发大型项目,方便状态管理而使用的。这里我们就不解释了,用起来和上面的一样。
npm install vuex -S // 安装vuex

src/store/index.js

import Vue from 'vue'
import Vuex from 'vuex'
import temp from '@/store/modules/temp'

Vue.use( Vuex ); // 挂载在vue

const store = new Vuex.Store({
  modules: {
    temp,
  }, state: {

  }, getters: {

  }, mutations: {

  },
});

export default store; // 抛出

src/store/modules/temp.js

const Storage = sessionStorage
const tempInfo = {
  state: { // 设置全局访问的state对象
    tempData: Storage['SET_TEMP_DATA'] ? JSON.parse(Storage['SET_TEMP_DATA']) : {}, // 设置初始化的值(Storage中是否存在,存在则获取,不存在则默认赋值{})
  }, mutations: { // 自定义改变state初始值的方法,这里面的参数除了state之外还可以再传额外的参数(变量或对象);
    SET_TEMP_DATA(state, tempData) {
      state.tempData = tempData
    },
  }, actions: {
    SetData({ commit }, tempData) {
      commit('SET_TEMP_DATA', tempData); // 同步操作
      Storage.setItem('SET_TEMP_DATA', JSON.stringify(tempData))
    }
  }, getters: { // 实时监听state值得变化(最新状态)
    tempData: (state) => {
      return state.tempData
    }
  }
}
export default tempInfo;

main.js

import Vue from 'vue'
import App from './App'
import router from './router'
import store from '@/store/index' //vuex 状态管理

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
 el: '#app',
 router,
 store, // 使用store
 components: { App },
 template: '<App/>'
})

src/index.vue

<template>
 <div class="move-forward">
   <div @click="click">点击改变vuex值</div>
</template>
<script>
  export default {
    methods: {
      click() {
        let aa = this.$store.getters.tempData.aaa*1
        this.$store.dispatch('SetData', {"aaa": aa += 1})
      },
    }
  }
</script>

其他

当然还可以使用vuex-persistedstate、vuex-along等这些第三方插件。

npm i -S vuex-persistedstate或npm i -S vuex-along
import Vue from 'vue'
import Vuex from 'vuex'
import temp from '@/store/modules/temp'
import createPersistedSatte from 'vuex-persistedstate' // 引入

Vue.use( Vuex );

const store = new Vuex.Store({
  modules: {
    temp,
  }, state: {

  }, getters: {

  }, mutations: {

  },
  plugins: [createPersistedSatte()], // 挂载插件
});

export default store

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Three.js源码阅读笔记(Object3D类)
Dec 27 Javascript
Javascript setInterval的两种调用方法(实例讲解)
Nov 29 Javascript
ie8本地图片上传预览示例代码
Jan 12 Javascript
javascript操作excel生成报表全攻略
May 04 Javascript
浅谈JavaScript中的String对象常用方法
Feb 25 Javascript
js实现的在线调色板功能完整实例
Dec 21 Javascript
创建一般js对象的几种方式
Jan 19 Javascript
微信小程序多列选择器range-key使用详解
Mar 30 Javascript
vue中appear的用法
Aug 17 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
Nov 24 Javascript
Express进阶之log4js实用入门指南
Feb 10 Javascript
JavaScript或jQuery 获取option value值方法解析
May 12 jQuery
超详细的5个Shell脚本实例分享(值得收藏)
Aug 15 #Javascript
koa2+vue实现登陆及登录状态判断
Aug 15 #Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 #Javascript
快速对接payjq的个人微信支付接口过程解析
Aug 15 #Javascript
Element-UI中关于table表格的那些骚操作(小结)
Aug 15 #Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
Aug 15 #Javascript
js设计模式之单例模式原理与用法详解
Aug 15 #Javascript
You might like
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
js验证表单第二部分
2006/11/25 Javascript
JS 遮照层实现代码
2010/03/31 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
2018/03/05 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
利用python发送和接收邮件
2016/09/27 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
python中有关时间日期格式转换问题
2019/12/25 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
Python定时从Mysql提取数据存入Redis的实现
2020/05/03 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
怎么样写好简历中的自我评价
2013/10/25 职场文书
服务行业个人求职的自我评价
2013/12/12 职场文书
公司年会主持词
2014/03/22 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
小学校本教研总结
2015/08/13 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python