解决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插件开发方法(初学者)
Feb 03 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
JavaScript实现分页效果
Mar 28 Javascript
详解Node.js access_token的获取、存储及更新
Jun 20 Javascript
JavaScript之排序函数_动力节点Java学院整理
Jun 30 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
Jul 04 Javascript
Vue实现6位数密码效果
Aug 18 Javascript
详解js模板引擎art template数组渲染的方法
Oct 09 Javascript
使用JavaScript解析URL的方法示例
Mar 01 Javascript
react 组件传值的三种方法
Jun 03 Javascript
js实现轮播图特效
May 28 Javascript
给原生html中添加水印遮罩层的实现示例
Apr 02 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
星际争霸中的热键
2020/03/04 星际争霸
php面向对象全攻略 (十四) php5接口技术
2009/09/30 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
异步加载script的代码
2011/01/12 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
酒店管理专业学生求职信
2013/09/27 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
四风问题对照检查材料
2014/09/22 职场文书
社会工作专业自荐信
2014/09/26 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
租车协议书范本2014
2014/11/17 职场文书
后进生评语大全
2015/01/04 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers
Python Matplotlib绘制动画的代码详解
2022/05/30 Python