解决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 相关文章推荐
JQuery实现表格中相同单元格合并示例代码
Jun 26 Javascript
JS获取地址栏参数的几种方法小结
Feb 28 Javascript
js打开windows上的可执行文件示例
May 27 Javascript
D3.js中data(), enter() 和 exit()的问题详解
Aug 17 Javascript
基于jQuery滑动杆实现购买日期选择效果
Sep 15 Javascript
js实现select二级联动下拉菜单
Apr 17 Javascript
jQuery事件绑定on()与弹窗实现代码
Apr 28 Javascript
详解用node.js实现简单的反向代理
Jun 26 Javascript
vue todo-list组件发布到npm上的方法
Apr 04 Javascript
JS实现简单的星期格式转换功能示例
Jul 23 Javascript
在vue项目中引用Iview的方法
Sep 14 Javascript
JavaScript中构造函数与原型链之间的关系详解
Feb 25 Javascript
超详细的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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
记录PHP错误日志 display_errors与log_errors的区别
2012/10/09 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
php数组去除空值函数分享
2015/02/02 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
PHP调用接口用post方法传送json数据的实例
2018/05/31 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
ES6 Iterator接口和for...of循环用法分析
2019/07/31 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
python实现问号表达式(?)的方法
2013/11/27 Python
简单介绍Python中的len()函数的使用
2015/04/07 Python
Python判断Abundant Number的方法
2015/06/15 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
计算机大学生职业生涯规划书范文
2014/02/19 职场文书
工程安全生产协议书
2014/11/21 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
风之谷观后感
2015/06/11 职场文书
七年级作文之游记
2019/12/11 职场文书
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python