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创建一个input数组并绑定click事件的方法
Jun 12 Javascript
下雪了 javascript实现雪花飞舞
Aug 02 Javascript
浅析Bootstrap组件之面板组件
May 04 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
Jul 20 Javascript
基于JavaScript实现前端文件的断点续传
Oct 17 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
Mar 08 Javascript
将jquery.qqFace.js表情转换成微信的字符码
Dec 01 jQuery
浅谈react-router HashRouter和BrowserRouter的使用
Dec 29 Javascript
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
element-ui循环显示radio控件信息的方法
Aug 24 Javascript
微信小程序实现批量倒计时功能
Nov 01 Javascript
详解微信小程序中var、let、const用法与区别
Jan 11 Javascript
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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
无限级别菜单的实现
2006/10/09 PHP
Laravel框架表单验证详解
2014/09/04 PHP
PHP类的封装与继承详解
2015/09/29 PHP
javascript 面向对象编程基础 多态
2009/08/21 Javascript
js的.innerHTML = ""IE9下显示有错误的解决方法
2013/09/16 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
python查看FTP是否能连接成功的方法
2015/07/30 Python
学生信息管理系统python版
2018/10/17 Python
python爬虫超时的处理的实例
2018/12/19 Python
python贪吃蛇游戏代码
2020/04/18 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
python 简单的调用有道翻译
2020/11/25 Python
出纳岗位职责模板
2013/11/27 职场文书
会计自荐书
2013/12/02 职场文书
消防安全检查制度
2014/02/04 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
委托协议书范本
2014/04/22 职场文书
2014党员民主评议个人总结
2014/09/10 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
遗嘱格式范本
2015/08/07 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js