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无刷新验证邮箱地址实现实例
Feb 19 Javascript
node.js中的http.response.addTrailers方法使用说明
Dec 14 Javascript
jQuery使用之处理页面元素用法实例
Jan 19 Javascript
jquery实现图片随机排列的方法
May 04 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
Aug 28 Javascript
JavaScript中创建对象的模式汇总
Apr 19 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
Jun 17 Javascript
JavaScript寄生组合式继承实例详解
Jan 06 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
Feb 23 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
Apr 08 Javascript
微信公众号开发之微信支付代码记录的实现
Oct 16 Javascript
vue+elementUI组件table实现前端分页功能
Nov 15 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 字符转义 注意事项
2009/05/27 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
2013/06/24 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
php微信开发之图片回复功能
2018/06/14 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
小程序实现列表点赞功能
2018/11/02 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
Python实现的一个简单LRU cache
2014/09/26 Python
Python中优化NumPy包使用性能的教程
2015/04/23 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
python对一个数向上取整的实例方法
2020/06/18 Python
编辑个人求职信范文
2013/09/21 职场文书
2016年主题党日活动总结
2016/04/05 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
详解OpenCV曝光融合
2022/04/29 Python
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技