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随机生成不重复数据的实例方法
Jul 17 Javascript
使用jquery自定义鼠标样式满足个性需求
Nov 05 Javascript
JavaScript中getUTCMinutes()方法的使用详解
Jun 10 Javascript
javascript实现控制div颜色
Jul 07 Javascript
JavaScript中的this关键字使用详解
Aug 14 Javascript
Bootstrap table两种分页示例
Dec 23 Javascript
JS模拟实现ECMAScript5新增的数组方法
Mar 20 Javascript
ES6正则的扩展实例详解
Apr 25 Javascript
js实现拖拽上传图片功能
Aug 01 Javascript
vue src动态加载请求获取图片的方法
Oct 17 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
Jan 29 Javascript
node.js express框架实现文件上传与下载功能实例详解
Oct 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来自动调用不同服务器上的flash
2006/10/09 PHP
PHP 程序员的调试技术小结
2009/11/15 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
php数组去重复数据示例
2014/02/25 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
JavaScript插入动态样式实现代码
2012/02/22 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
Python学习笔记之解析json的方法分析
2017/04/21 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
简单了解Django项目应用创建过程
2020/07/06 Python
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
销售自我评价
2013/10/22 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
毕业生自荐信范文
2015/03/05 职场文书
求职信格式范文
2015/03/19 职场文书
机关工会工作总结2015
2015/05/26 职场文书
小学课改工作总结
2015/08/13 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书