最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue項目中使用vuex詳解

 更新時間:2023年03月25日 09:39:45   作者:大熊李子  
Vuex是一個專為Vue.js應用程序開發(fā)的狀態(tài)管理模式,它采用集中式存儲管理應用的所有組件的狀態(tài),并以相應的規(guī)則保證狀態(tài)以一種可預測的方式發(fā)生變化,下面這篇文章主要給大家介紹了關于vuex模塊獲取數(shù)據(jù)及方法的相關資料,需要的朋友可以參考下

一、vuex狀態(tài)共享樹

以前我們進行數(shù)據(jù)的共享,使用的是自定義事件,自定義屬性,eventBus,全局事件總線,pubsub等,以上的方式只能在小范圍內進行數(shù)據(jù)共享,對于大范圍以及頻繁的數(shù)據(jù)共享來說,不太使用,尤其是在大型項目中的體驗感不佳

1.什么是Vuex

Vuex是實現(xiàn)組件全局狀態(tài)(數(shù)據(jù))管理的-種機制,可以方便的實現(xiàn)組件之間數(shù)據(jù)的共享。

2.vuex的優(yōu)點

1. 能夠在vuex中集中管理共享的數(shù)據(jù),易于開發(fā)和后期維護

2. 能夠高效地實現(xiàn)組件之間的數(shù)據(jù)共享,提高開發(fā)效率

3. 存儲在vuex中的數(shù)據(jù)都是響應式的,能夠實時保持數(shù)據(jù)與頁面的同步

3.什么時候使用vuex

一般情況下,只有組件之間共享的數(shù)據(jù),才有必要存儲到vuex中;對于組件中的私有數(shù)據(jù),依舊存儲在組件自身的data中即可。

二、Vuex的基本使用

①安裝 vuex 依賴

npmi vuex--save

②導入 vuex 包

importVuexfrom'vuex'
Vuex.use(Vuex)

③創(chuàng)建 store 對象

const store=new Vuex.store({
//state中存放的就是全局共享的數(shù)據(jù)
state:{count:0}
})

④將 store 對象掛載到 vue 實例中

new vue({
el:'#app',
render:h=>h(app),
router,
//將創(chuàng)建的共享數(shù)據(jù)對象,掛載到Vue實例中
//所有的組件,就可以直接從store中獲取全局的數(shù)據(jù)了
store
})

三、Vuex的核心概念

四個vuex節(jié)點

1.State

State提供唯一的公共數(shù)據(jù)源,所有共享的數(shù)據(jù)都要統(tǒng)-放到Store的State中進行存儲。

//創(chuàng)建store數(shù)據(jù)源,提供唯一-公共數(shù)據(jù)
conststore=newVuex.store({
state:{count:0}
})

組件中使用共享數(shù)據(jù)的第一種方式

this.$store.state.數(shù)據(jù)變量名

組件中使用共享數(shù)據(jù)的第二種方式

從vuex中按需導入mapState函數(shù)
import{mapState}from'vuex'導入mapState函數(shù)

通過剛才導入的mapState函數(shù),將當前組件需要的全局數(shù)據(jù),映射為當前組件的computed計算屬性

computed:{
...mapState(['變量名'])
}

2.Mutation

Mutation 用于變更Store中的數(shù)據(jù)。vuex只能通過mutation變更Store數(shù)據(jù),不可以直接操作Store中的數(shù)據(jù)。通過這種方式雖然操作起來稍微繁瑣- -些,但是可以集中監(jiān)控所有數(shù)據(jù)的變化。

exportdefaultnewVuex.Store({
state:{
count:0
},
mutations:{//定義mutation
add(state){
state.count++
}
}
})
//組件中使用
methods:{
add(){
//觸發(fā)mutation
this.$store.commit('add')
}
}

可以在觸發(fā)mutations時傳遞參數(shù)

export default new Vuex.Store({
state:{
count:0
},
mutations:{
addN(state,step){
//變更狀態(tài)
state.count+=step
}
}
})
//組件中使用
methods:{
add(){
//觸發(fā)mutation時攜帶參數(shù)
//commit的作用,就是調用某個mutation函數(shù)
this.$store.commit('addN',3)
}
}

mutations第二種使用方式

this. $store.commit() 是觸發(fā)mutations的第一種方式,觸發(fā)mutations的第二種方式

//1.從vuex中按需導入mapMutations函數(shù)
import{mapMutations}from'vuex'

通過剛才導入的mapMutations函數(shù),將需要的mutations函數(shù),映射為當前組件的methods方法

//2.將指定的mutations函數(shù),映射為當前組件的methods函數(shù)
methods:{
...
mapMutations(['sub'])
}

3.Action

Action用于處理異步任務。如果通過異步操作變更數(shù)據(jù),必須通過Action,而不能使用Mutation,但是在Action中還是要通過觸發(fā)Mutation的方式間接變更數(shù)據(jù)。

export default new Vuex.Store({
state:{
count:0
},
mutations:{
add(state){
state.count++
},
actions:{
addAsync(context){
setTimeout(()=>{
context.commit('add')
},1000)
}
},
})
//組件中使用
methods:{
addAsync(){
這里的dispatch函數(shù),專門用來觸發(fā)action
this.$store.dispatch('addAsync')
}
}

4.Getter

Getter用于對Store中的數(shù)據(jù)進行加工處理形成新的數(shù)據(jù)。

1. Getter可以對Store中已有的數(shù)據(jù)加工處理之后形成新的數(shù)據(jù),類似Vue的計算屬性。

2. Store中數(shù)據(jù)發(fā)生變化,Getter 的數(shù)據(jù)也會跟著變化。

定義Getter

export default new Vuex.Store({
state:{
count:0
},
getters:{
showNum(state){
return'當前最新的數(shù)量是:'+state.count
}
}

調用 Getter

使用getters的第一種方式

this.$store.getters.名稱

使用getters的第二種方式

import{mapGetters}from'vuex'
computed:{
...
mapGetters(['showNum'])
}

到此這篇關于Vue項目中使用vuex詳解的文章就介紹到這了,更多相關Vue vuex內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解vue渲染函數(shù)render的使用

    詳解vue渲染函數(shù)render的使用

    本篇文章主要介紹了vue渲染函數(shù)render的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • vue項目中input輸入框輸入不了值問題及解決

    vue項目中input輸入框輸入不了值問題及解決

    這篇文章主要介紹了vue項目中input輸入框輸入不了值問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue element實現(xiàn)多個Formt表單同時驗證

    vue element實現(xiàn)多個Formt表單同時驗證

    這篇文章主要介紹了vue element實現(xiàn)多個Formt表單同時驗證方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue3+el-select實現(xiàn)觸底加載更多功能(ts版)

    vue3+el-select實現(xiàn)觸底加載更多功能(ts版)

    這篇文章主要給大家介紹了基于vue3和el-select實現(xiàn)觸底加載更多功能,文中有詳細的代碼示例,感興趣的同學可以借鑒參考下
    2023-07-07
  • 前端小技能之Vue集成百度離線地圖功能總結

    前端小技能之Vue集成百度離線地圖功能總結

    最近項目里集成了百度地圖的一些功能,所以下面這篇文章主要給大家介紹了關于前端小技能之Vue集成百度離線地圖功能的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • vue登錄注冊實例詳解

    vue登錄注冊實例詳解

    在本篇內容里小編給大家分享的是關于vue登錄注冊的相關實例內容以及寫法分析,有需要朋友們可以學習下。
    2019-09-09
  • Vue實現(xiàn)動態(tài)創(chuàng)建和刪除數(shù)據(jù)的方法

    Vue實現(xiàn)動態(tài)創(chuàng)建和刪除數(shù)據(jù)的方法

    下面小編就為大家分享一篇Vue實現(xiàn)動態(tài)創(chuàng)建和刪除數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Element?Plus修改表格行和單元格樣式詳解

    Element?Plus修改表格行和單元格樣式詳解

    在使用Element Plus中的table組件展示數(shù)據(jù)時,由于需要對表格行內數(shù)據(jù)的數(shù)據(jù)進行修改,下面這篇文章主要給大家介紹了關于Element?Plus修改表格行和單元格樣式的相關資料,需要的朋友可以參考下
    2022-04-04
  • Element-ui table中過濾條件變更表格內容的方法

    Element-ui table中過濾條件變更表格內容的方法

    下面小編就為大家分享一篇Element-ui table中過濾條件變更表格內容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 如何使用VuePress搭建一個類型element ui文檔

    如何使用VuePress搭建一個類型element ui文檔

    這篇文章主要介紹了如何使用VuePress搭建一個類型element ui文檔,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02

最新評論

哈巴河县| 海门市| 乌审旗| 文山县| 休宁县| 开阳县| 赫章县| 固安县| 信阳市| 西平县| 哈巴河县| 新竹市| 正阳县| 海伦市| 安远县| 通州区| 孝义市| 闸北区| 伊金霍洛旗| 东兴市| 光山县| 青铜峡市| 南靖县| 美姑县| 清水河县| 北海市| 新营市| 铜川市| 咸阳市| 衡阳县| 磴口县| 新巴尔虎左旗| 金平| 商都县| 玉环县| 溧阳市| 海阳市| 广东省| 兴宁市| 和顺县| 苏尼特右旗|