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 相关文章推荐
jquery 插件学习(五)
Aug 06 Javascript
jquery复选框checkbox实现删除前判断
Apr 20 Javascript
node.js中的querystring.parse方法使用说明
Dec 10 Javascript
javascript 判断两个日期之差的示例代码
Sep 05 Javascript
javascript瀑布流式图片懒加载实例
Jun 28 Javascript
JS留言功能的简单实现案例(推荐)
Jun 23 Javascript
浅谈EasyUI常用控件的禁用方法
Nov 09 Javascript
浅析javascript中的Event事件
Dec 09 Javascript
React实现全局组件的Toast轻提示效果
Sep 21 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
Dec 17 Javascript
微信小程序实现消息框弹出动画
Apr 18 Javascript
vue style width a href动态拼接问题的解决
Aug 07 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
PHP脚本的10个技巧(2)
2006/10/09 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP链表操作简单示例
2016/10/15 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
JObj预览一个JS的框架
2008/03/13 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
JS数字千分位格式化实现方法总结
2016/12/16 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
用Python抢过年的火车票附源码
2015/12/07 Python
简单实现python爬虫功能
2015/12/31 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
python计算二维矩形IOU实例
2020/01/18 Python
pygame实现弹球游戏
2020/04/14 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
古驰英国官网:GUCCI英国
2020/03/07 全球购物
什么是索引指示器
2012/08/20 面试题
你所在的项目是如何确定版本号的
2015/12/28 面试题
应届大学生自荐信
2013/12/05 职场文书
委托书范本
2014/09/13 职场文书
学习作风建设心得体会
2014/10/22 职场文书
2015年计划生育责任书
2015/05/08 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android