vuex module與eventbus的簡化使用

2021-10-07 19:19:22 字數 1836 閱讀 8057

import vue from

'vue'

var $bus=

newvue()

//我們採用把$bus掛載在原型上的方式,這樣我們只需要在main.js中匯入bus.js即可

vue.prototype.$bus=$bus

="ca"

>

"handleclick"

> clickme<

/div>

<

/div>

<

/template>

export

default

, methods:}}

};<

/script>

在這個元件內監聽handleclfromchild事件

="cb"

>

<

/div>

<

/template>

export

default

,created()

)}};

<

/script>

我們直接把eventbus掛在vue的原型上,這樣呼叫的時候會比較方便,不要繁瑣的import

const about=

, actions:},

mutations:

}export

default about

const home=

, actions:},

mutations:

}export

default home

import vue from

'vue'

import vuex from

'vuex'

import home from

'./home'

import about from

'./about'

vue.

use(vuex)

export

default

newvuex.store(}

)

未開啟命名空間

對不同module中屬性的方法進行命名

const home=

, actions:},

mutations:

}export

default home

此時分發home中』add』

this.$store.dispatch('home/add')

我們發現home中actions add的寫法變成了['home/add'](){}

其實這就是'home/add':function(){}簡寫方式

2) 開啟命名空間

開啟命名空間

const home=

, actions:},

mutations:

}export

default home

此時我們分發home中的add就可以直接this.$store.dispatch('home/add'),不再需要對module中相應的屬性進行修改了

moudles 本來就是來幫助進行多個狀態管理的,因為專案達到了乙個量級,所以直接使用namespaced有益於以後的開發和維護.

Vuex Module 模組化使用

由於使用單一狀態樹,應用的所有狀態會集中到乙個比較大的物件。當應用變得非常複雜時,store 物件就有可能變得相當臃腫。為了解決以上問題,vuex 允許我們將 store 分割成模組 module 每個模組擁有自己的 state mutation action getter 甚至是巢狀子模組 src...

vuex module 中的狀態改變

任務是做乙個後台管理系統,組長從某地刨了乙個後台基礎版本改了改。我負責其中乙個狀態管理部分,原後台版本用了自動模組引入,於是我也整了乙個,然後發現在module和state裡用action方法還是有點不同的。boxid 是模組名 自動化生成的,我也是佛了。dispatch還要標註是哪個模組的,因此用...

vue的keep alive中使用EventBus

最近專案中由於列表居多且都做了下拉重新整理上拉載入,所以就使用了keep alive元件來快取頁面資料,但是當在其他頁面做一些操作改變了列表資料,當來到列表的時候每次都要下拉重新整理一下,體驗不好,所以就使用到了eventbus,在需要更新的時候就用eventbus來重新整理列表。eventbus用...