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

Vue狀態(tài)管理工具Vuex工作原理解析

 更新時間:2023年02月01日 09:50:46   作者:禿頭小宋s  
Vuex是一個專為Vue.js應用程序開發(fā)的狀態(tài)管理模式,下面這篇文章主要給大家介紹了關于Vue中狀態(tài)管理器(vuex)詳解以及實際應用場景的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

一、什么是vuex

Vuex是vue項目的狀態(tài)管理器(狀態(tài)管理工具)。vue項目的狀態(tài)是通過vue實例(組件)綁定的變量來體現(xiàn)。所以也可以說vuex是用來管理vue項目中的各種變量(vue項目中的組件可以訪問vuex中管理的變量——方便了組件的通信)

二、vuex的工作方式

(1)在全局中定義一個state:state本質是一個對象,該對象的屬性就是vue組件用到的變量(所有組件共享這些變量)

(2)在vue組件中若要更新state的值,必須通過mutation來進行(只能通過mutation去改變state的狀態(tài)),只能同步修改(即mutation中的方法都是同步的)

(3)若要異步的修改state的值,需要通過action來進行(action不能直接修改state,但是它可以向mutation發(fā)起請求,由mutation來修改state的值,可以在action中定義異步方法)

三、vuex的使用場景

(1)不適合:小型的簡單應用

(2)適合:中大型單頁面應用

多個視圖(多個組件)依賴同一個狀態(tài)

不同的視圖的行為需要改變同一個狀態(tài)

四、工作流程

View-->Action-->Mutations-->State-->View

五、vuex的核心API

(1)state:

必須是唯一的

本質是一個對象,維護的是vue的狀態(tài)

const state = {

屬性名:初始化值

}

state:{

屬性名:初始化值

}

(2)mutations

作用:用來修改state

定義了多個用于修改state的方法

只能包含同步代碼

定義方式:

const mutations = {

方法名1(state,[data]){

//更改state的屬性值

},

方法名2(state,[data]){

//更改state的屬性值

},

}

觸發(fā)方式:

(1)在actions中通過commit('mutations 的方法名')實現(xiàn)觸發(fā)

(2)在組件中通過 this.$store.commit('方法名',params)實現(xiàn)觸發(fā)

(3)actions:通過actions去觸發(fā)mutations中的方法,實現(xiàn)對state的異步修改

  • 可以包含異步代碼
  • 通過commit觸發(fā)mutations來間接修改state
  • 觸發(fā)方式(如何觸發(fā)actions):在組件中通過this.$store.dispatch('action名稱',data1)進行觸發(fā)
  • 定義方式

const actions = {

方法名({commit,state},data1){

commit('mutations中的方法名')

}

}

(4)getters:用于獲取state的屬性值,類似于state的計算屬性

定義方法:

const getters = {

方法名([參數(shù)]){

return state.屬性名

}

}

在組件中的使用方式: this.$store.getters.方法名

(5)modules:在大型項目中用于管理多個子模塊的state

六、應用

注意版本:vuex3對應的vue2,vuex4對應的vue3

(1)安裝vuex

npm install vuex@3 | npm i vuex@3 -S

(2)定義vuex的store(倉庫)

src/store/store.js

導入vue和vuex

import Vue from 'vue'
import Vuex from 'vuex'
//全局注冊vuex
Vue.use(Vuex)
//定義全局的store:即定義全局的狀態(tài)管理器(數(shù)據(jù)倉庫)
export  default  new Vuex.Store({
    state:{  },
    mutations:{},
    actions:{},
    getters:{},
    modules:{}
})

在main.js文件中進行配置

import Vue from 'vue'
import App from './App.vue'
// 導入vuex的配置文件
import store from "@/store/store";
// 在vue實例中引用
new Vue({
  store,
  render: function (h) { return h(App) },
}).$mount('#app')

注:

在組件中觸發(fā)mutations中定義的方法:觸發(fā)同步方法

this.$store.commit('mutations中定義的方法名',參數(shù))

在組件中觸發(fā)actions中定義的方法:觸發(fā)異步方法

this.$store.dispatch('actions中定義的方法名')

獲取state中屬性值的方法:

1.直接獲?。簍his.$store.state.屬性名

2.通過getters:this.$store.getters.屬性名

在定義vuex的store實例時不能使用this

七、vuex的工作流程

(1)在組件中通過commit直接向mutations提交修改state的請求、或者通過dispatch向actions派發(fā)請求

(2)mutations通過接收到的請求去修改state的狀態(tài)

到此這篇關于Vue狀態(tài)管理工具Vuex工作原理解析的文章就介紹到這了,更多相關Vue Vuex內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vuex的使用步驟

    vuex的使用步驟

    這篇文章主要介紹了vuex的使用步驟,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2021-01-01
  • vue-Split實現(xiàn)面板分割

    vue-Split實現(xiàn)面板分割

    這篇文章主要為大家詳細介紹了vue-Split實現(xiàn)面板分割,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue3中的常見組件通信之mitt使用詳解

    Vue3中的常見組件通信之mitt使用詳解

    這篇文章主要介紹了Vue3中的常見組件通信之mitt使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Vue項目路由刷新的實現(xiàn)代碼

    Vue項目路由刷新的實現(xiàn)代碼

    這篇文章主要介紹了Vue項目路由刷新的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • Vue中的v-for循環(huán)key屬性注意事項小結

    Vue中的v-for循環(huán)key屬性注意事項小結

    這篇文章主要介紹了Vue中的v-for循環(huán)key屬性注意事項小結,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • vue3使用videojs播放m3u8格式視頻教程

    vue3使用videojs播放m3u8格式視頻教程

    m3u8是一種基于HTTP Live Streaming(HLS)文件視頻格式,它主要是存放整個視頻的基本信息和分片(Segment)組成,下面這篇文章主要給大家介紹了關于vue3使用videojs播放m3u8格式視頻的相關資料,需要的朋友可以參考下
    2023-06-06
  • vue中報錯Duplicate?keys?detected:'1'.?This?may?cause?an?update?error的解決方法

    vue中報錯Duplicate?keys?detected:'1'.?This?may?c

    我們在vue開發(fā)過程中常會遇到一些錯誤,這篇文章主要給大家介紹了關于vue中報錯Duplicate?keys?detected:‘1‘.?This?may?cause?an?update?error的解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • 基于vue實現(xiàn)微博三方登錄流程解析

    基于vue實現(xiàn)微博三方登錄流程解析

    這篇文章主要介紹了基于vue實現(xiàn)微博三方登錄流程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • vue2.x 對象劫持的原理實現(xiàn)

    vue2.x 對象劫持的原理實現(xiàn)

    這篇文章主要介紹了vue2.x 對象劫持的原理實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • vue實現(xiàn)拖拽交換位置

    vue實現(xiàn)拖拽交換位置

    這篇文章主要為大家詳細介紹了vue實現(xiàn)拖拽交換位置,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論

金门县| 通山县| 博湖县| 偃师市| 山丹县| 确山县| 关岭| 密云县| 凤庆县| 东港市| 义乌市| 瓦房店市| 昭平县| 教育| 徐水县| 准格尔旗| 昌宁县| 竹北市| 河西区| 莎车县| 手游| 古交市| 高陵县| 贡觉县| 崇义县| 金华市| 米脂县| 左贡县| 崇州市| 逊克县| 轮台县| 临沭县| 河北区| 天长市| 鹿泉市| 织金县| 连城县| 乌鲁木齐县| 巴彦淖尔市| 乃东县| 台中市|