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 常用代码技巧大收集
Feb 25 Javascript
Jquery 表格合并的问题分享
Sep 17 Javascript
Bootstrap Chart组件使用教程
Apr 28 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
May 23 Javascript
使用Web Uploader实现多文件上传
Jun 08 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
Jan 17 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
javascript+css3开发打气球小游戏完整代码
Nov 28 Javascript
解决在vue项目中webpack打包后字体不生效的问题
Sep 01 Javascript
JS实现动态添加外部js、css到head标签的方法
Jun 05 Javascript
使用JS来动态操作css的几种方法
Dec 18 Javascript
jQuery实现视频展示效果
May 30 jQuery
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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
php 静态化实现代码
2009/03/20 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
javascript中的正则表达式使用指南
2015/03/01 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
django框架使用方法详解
2019/07/18 Python
python实现KNN分类算法
2019/10/16 Python
python线程里哪种模块比较适合
2020/08/02 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
如何写一个自定义标签
2012/12/28 面试题
高中运动会广播稿
2014/01/21 职场文书
商场促销活动方案
2014/02/08 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
教师业务学习材料
2014/12/16 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书