Vuex的热更替如何实现


Posted in Javascript onJune 05, 2020

前言

我们在使用Vuex的时候,会时不时的更改Vuex内的数据,但是页面不会随之更新,如果数据量大,一个数据依赖另一个数据的话,这样我们要是再刷新页面的话会把以前依赖的数据清空,效率特别低。所以,今天我总结了怎么实现Vuex热更替的功能。

实现

首先,我们这里使用了Vue CLI3。在根目录下的src目录下我们有一个存放Vuex的文件夹叫做store文件夹。首先我们分割成几个模块。

Vuex的热更替如何实现

下面我们把它们分别引入,这里没有分割actions,不过与其他属性同理,这里有不做介绍。下面我们在index.js编辑下面代码:

import Vuex from 'vuex'
// 引入分割的模块
import state from './state/state'
import mutations from './mutations/mutations'
import getters from './getters/getters'

export default ()=>{
// 这里需要赋给一个store变量
 const store = new Vuex.Store({
  state:state,
  mutations:mutations,
  getters:getters
 })
 // 热更新模块
 if(module.hot){
 // 跟上面一样,写入对应的分割模块路径
  module.hot.accept([
   './state/state',
   './mutations/mutations',
   './getters/getters'
  ],()=>{
  // 开启热更替
   const newState = require('./state/state').default
   const newMutations = require('./mutations/mutations').default
   const newGetters = require('./getters/getters').default
   store.hotUpdate({
    state:newState,
    mutations:newMutations,
    getters:newGetters
   })
  })
 }
 
 return store
}

我们还需要在main.js修改:

import Vue from 'vue'
import App from './App.vue'
import Vuex from 'vuex'
import createStore from './store/index.js'

Vue.config.productionTip = false

Vue.use(Vuex)
const store=createStore();

new Vue({
 store,
 render: h => h(App)
}).$mount('#app')

一些其他api

// store.registerModule({ //动态添加模块
// })

// 相当于getter
// store.watch((state)=>state.count+1,(newCount)=>{
//  console.log('new count watched , '+newCount)
// })

// mutation被调用时
// store.subscribe((mutation,state)=>{
//  console.log(mutation.type)
//  console.log(mutation.payload)
// })

// action被调用时
// store.subscribeAction((action,state)=>{
//  console.log(action.type)
//  console.log(action.payload)
// })

结语

以上就完成了Vuex的热更替功能。需要注意的是,直接在state中更改是看不到效果的哦!

到此这篇关于Vuex的热更替如何实现的文章就介绍到这了,更多相关Vuex 热更替内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JS获取scrollHeight问题想到的标准问题
May 27 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
Nov 24 Javascript
让你一句话理解闭包(简单易懂)
Jun 03 Javascript
Vue响应式原理详解
Apr 18 Javascript
vue获取当前点击的元素并传值的实例
Mar 09 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
json前后端数据交互相关代码
Sep 19 Javascript
Vue源码学习之关于对Array的数据侦听实现
Apr 23 Javascript
回顾Javascript React基础
Jun 15 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
全面解析Vue中的$nextTick
Dec 24 Vue.js
2分钟实现一个Vue实时直播系统的示例代码
Jun 05 #Javascript
Vue 封装防刷新考试倒计时组件的实现
Jun 05 #Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
Jun 05 #Javascript
vue使用nprogress加载路由进度条的方法
Jun 04 #Javascript
JS+canvas五子棋人机对战实现步骤详解
Jun 04 #Javascript
JS删除数组指定值常用方法详解
Jun 04 #Javascript
Vue项目接入Paypal实现示例详解
Jun 04 #Javascript
You might like
PHP 5.0对象模型深度探索之绑定
2006/09/05 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
js如何验证密码强度
2020/03/18 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
jquery实现图片放大镜效果
2020/12/23 jQuery
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python循环定时中断执行某一段程序的实例
2019/06/29 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
智能电子应届生求职信
2013/11/10 职场文书
十八大报告观后感
2014/01/28 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
毕业生就业意向书
2014/04/01 职场文书
2015年社区服务活动总结
2015/03/25 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
活动新闻稿范文
2015/07/17 职场文书
升学宴学生致辞
2015/09/29 职场文书
利用python进行数据加载
2021/06/20 Python
Python面向对象编程之类的概念
2021/11/01 Python
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫