Vuex的熱更替如何實(shí)現(xiàn)
前言
我們?cè)谑褂肰uex的時(shí)候,會(huì)時(shí)不時(shí)的更改Vuex內(nèi)的數(shù)據(jù),但是頁(yè)面不會(huì)隨之更新,如果數(shù)據(jù)量大,一個(gè)數(shù)據(jù)依賴(lài)另一個(gè)數(shù)據(jù)的話(huà),這樣我們要是再刷新頁(yè)面的話(huà)會(huì)把以前依賴(lài)的數(shù)據(jù)清空,效率特別低。所以,今天我總結(jié)了怎么實(shí)現(xiàn)Vuex熱更替的功能。
實(shí)現(xiàn)
首先,我們這里使用了Vue CLI3。在根目錄下的src目錄下我們有一個(gè)存放Vuex的文件夾叫做store文件夾。首先我們分割成幾個(gè)模塊。

下面我們把它們分別引入,這里沒(méi)有分割actions,不過(guò)與其他屬性同理,這里有不做介紹。下面我們?cè)趇ndex.js編輯下面代碼:
import Vuex from 'vuex'
// 引入分割的模塊
import state from './state/state'
import mutations from './mutations/mutations'
import getters from './getters/getters'
export default ()=>{
// 這里需要賦給一個(gè)store變量
const store = new Vuex.Store({
state:state,
mutations:mutations,
getters:getters
})
// 熱更新模塊
if(module.hot){
// 跟上面一樣,寫(xiě)入對(duì)應(yīng)的分割模塊路徑
module.hot.accept([
'./state/state',
'./mutations/mutations',
'./getters/getters'
],()=>{
// 開(kāi)啟熱更替
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({ //動(dòng)態(tài)添加模塊
// })
// 相當(dāng)于getter
// store.watch((state)=>state.count+1,(newCount)=>{
// console.log('new count watched , '+newCount)
// })
// mutation被調(diào)用時(shí)
// store.subscribe((mutation,state)=>{
// console.log(mutation.type)
// console.log(mutation.payload)
// })
// action被調(diào)用時(shí)
// store.subscribeAction((action,state)=>{
// console.log(action.type)
// console.log(action.payload)
// })
結(jié)語(yǔ)
以上就完成了Vuex的熱更替功能。需要注意的是,直接在state中更改是看不到效果的哦!
到此這篇關(guān)于Vuex的熱更替如何實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Vuex 熱更替內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vuex實(shí)現(xiàn)購(gòu)物車(chē)小功能
- vue+vuex+axios從后臺(tái)獲取數(shù)據(jù)存入vuex,組件之間共享數(shù)據(jù)操作
- Vue.js中使用Vuex實(shí)現(xiàn)組件數(shù)據(jù)共享案例
- vuex管理狀態(tài)倉(cāng)庫(kù)使用詳解
- 解決vuex數(shù)據(jù)頁(yè)面刷新后初始化操作
- vuex中store存儲(chǔ)store.commit和store.dispatch的用法
- 解決VUEX的mapState/...mapState等取值問(wèn)題
- 對(duì)vuex中store和$store的區(qū)別說(shuō)明
- 淺談Vuex的this.$store.commit和在Vue項(xiàng)目中引用公共方法
- 如何手寫(xiě)一個(gè)簡(jiǎn)易的 Vuex
相關(guān)文章
vue3+vite應(yīng)用中添加sass預(yù)處理器問(wèn)題
這篇文章主要介紹了vue3+vite應(yīng)用中添加sass預(yù)處理器問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
VUE v-for循環(huán)中每個(gè)item節(jié)點(diǎn)動(dòng)態(tài)綁定不同函數(shù)的實(shí)例
今天小編就為大家分享一篇VUE v-for循環(huán)中每個(gè)item節(jié)點(diǎn)動(dòng)態(tài)綁定不同函數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
Vue Element前端應(yīng)用開(kāi)發(fā)之菜單資源管理
在權(quán)限管理系統(tǒng)中,菜單也屬于權(quán)限控制的一個(gè)資源,屬于角色控制的一環(huán)。不同角色用戶(hù),登錄系統(tǒng)后,出現(xiàn)的系統(tǒng)菜單是不同的。菜單結(jié)合路由集合,實(shí)現(xiàn)可訪問(wèn)路由的過(guò)濾,也就實(shí)現(xiàn)了對(duì)應(yīng)角色菜單的展示和可訪問(wèn)路由的控制。2021-05-05
Vue實(shí)現(xiàn)簡(jiǎn)易購(gòu)物車(chē)頁(yè)面
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)簡(jiǎn)易購(gòu)物車(chē)頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
Vue實(shí)現(xiàn)數(shù)據(jù)篩選與搜索功能的示例代碼
在許多Web應(yīng)用程序中,數(shù)據(jù)篩選和搜索是關(guān)鍵的用戶(hù)體驗(yàn)功能,本文將深入探討在Vue中如何進(jìn)行數(shù)據(jù)篩選與搜索的實(shí)現(xiàn),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
基于vue3?vue-cli4?線(xiàn)上部署及優(yōu)化的問(wèn)題
這篇文章主要介紹了基于vue3?vue-cli4?線(xiàn)上部署及優(yōu)化的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
eslint常見(jiàn)的一些報(bào)錯(cuò)及解決方法
這篇文章主要給大家介紹了關(guān)于eslint常見(jiàn)的一些報(bào)錯(cuò)及解決方法,解決eslint的報(bào)錯(cuò)問(wèn)題可以要根據(jù)報(bào)錯(cuò)行數(shù)快速定位.文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03

