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实现的分页函数
Dec 22 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 Javascript
JavaScript极简入门教程(二):对象和函数
Oct 25 Javascript
JS中字符串trim()使用示例
May 26 Javascript
关于ES6箭头函数中的this问题
Feb 27 Javascript
Vue动态组件与异步组件实例详解
Feb 23 Javascript
TypeScript开发Node.js程序的方法
Apr 30 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
May 15 Javascript
jquery实现动态创建form并提交的方法示例
May 27 jQuery
小程序实现可拖动的悬浮按钮
Sep 07 Javascript
在JavaScript中如何使用宏详解
May 06 Javascript
JS class语法糖的深入剖析
Jul 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中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
php时间函数用法分析
2016/05/28 PHP
php取出数组单个值的方法
2018/03/12 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
javascript 闭包疑问
2010/12/30 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python查找相似单词的方法
2015/03/05 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
Python多项式回归的实现方法
2019/03/11 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
用python实现学生管理系统
2020/07/24 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
成绩单家长评语大全
2014/04/16 职场文书
小浪底导游词
2015/02/12 职场文书
售后服务质量承诺书
2015/04/29 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
致运动员赞词
2015/07/22 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript