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 相关文章推荐
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
Jan 23 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
Jun 15 Javascript
JSON与XML优缺点对比分析
Jul 17 Javascript
10个JavaScript中易犯小错误
Feb 14 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
May 04 Javascript
AngularJS实现Input格式化的方法
Nov 07 Javascript
js定时器实现倒计时效果
Nov 05 Javascript
Vue引入sass并配置全局变量的方法
Jun 27 Javascript
推荐15个最好用的JavaScript代码压缩工具
Feb 13 Javascript
详解微信小程序自定义组件的实现及数据交互
Jul 22 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
Mar 06 Javascript
8个JS的reduce使用实例和reduce操作方式
Oct 05 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
javascript prototype 原型链
2009/03/12 Javascript
Javascript 检测、添加、移除样式(className)函数代码
2009/09/08 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
理解Javascript_05_原型继承原理
2010/10/13 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
JavaScript加强之自定义event事件
2013/09/21 Javascript
浅析AngularJS中的生命周期和延迟处理
2015/06/18 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
如何使用Python调整图像大小
2020/09/26 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
人力资源管理专业应届生求职信
2013/09/28 职场文书
2013年学期结束动员演讲稿
2014/01/07 职场文书
环境卫生标语
2014/06/09 职场文书
单位作风建设自查报告
2014/10/23 职场文书
预备党员考察意见范文
2015/06/01 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python