首頁 >web前端 >Vue.js >vue裡store的用法是什麼

vue裡store的用法是什麼

WBOY
WBOY原創
2022-02-25 15:56:4234650瀏覽

在vue中,store用於管理狀態、共享資料以及在各個元件之間管理外部狀態,store是vuex應用程式的核心,也就是一個容器,包含著應用程式中大部分的狀態,更改store中的狀態唯一方法是提交mutation。

vue裡store的用法是什麼

本文操作環境:windows10系統、Vue2.9.6版,DELL G3電腦。

vue裡store的用法是什麼

Vuex 是專為 Vue.js 應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可預測的方式變更。

每一個 Vuex 應用程式的核心就是 store(倉庫)。 「store」基本上就是一個容器,它包含著你的應用程式中大部分的狀態 (state)。 Vuex 和單純的全域物件有以下兩點不同:

Vuex 的狀態儲存是響應式的。當 Vue 元件從 store 讀取狀態的時候,若 store 中的狀態發生變化,那麼對應的元件也會相應地得到高效更新。

你不能直接改變 store 裡的狀態。改變 store 中的狀態的唯一方法就是明確地提交 (commit) mutation。這樣使得我們可以方便地追蹤每一個狀態的變化,讓我們能夠實現一些工具來幫助我們更好地了解我們的應用。

store 的核心概念

state 表示了 store 中的狀態,類似於 vue 實例中的 data 屬性。

Mutation

更改 Vuex 的 store 中的狀態的唯一方法是提交 mutation。

Vuex 中的 mutation 非常類似事件:每個 mutation 都有字串的 事件類型 (type) 和 一個 回呼函數 (handler)。這個回呼函數就是我們實際進行狀態變更的地方,而且它會接受state 作為第一個參數

Action

Action 類似於mutation,不同在於:

Action提交的是mutation,而不是直接變更狀態。

Action 可以包含任意非同步操作。

一個範例

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  },
  actions: {
    increment (context) {
      context.commit('increment')
    }
  }
})

store 的用法

#使用store 之前, 先安裝vuex :

npm install vuex

安裝Vuex 之後,讓我們來建立一個store。創建過程直截了當——僅需要提供一個初始 state 物件和一些 mutation。

新 store 資料夾,再新建 index.js 檔案:

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
    state: {
        count: 0
    },
    mutations: {
        increment(state){
            state.count++;
        }
    }
})

為了在 Vue 元件中存取 this.$store property,你需要為 Vue 實例提供建立好的 store。 Vuex 提供了一個從根元件向所有子元件,以 store 選項的方式「注入」該 store 的機制。

也就是在main.js 檔案中導入,並註冊到vue 根實例中:

import store from './store'
...
new Vue({
    el: "#app",
    store: store,
...

然後就可以在任意一個vue 元件的methods 方法屬性下透過store.commit(' increment')來呼叫:

        ...
        methods:{
            increment:function(){
                this.$store.commit("increment");
                console.log(this.$store.state.count);
            },
            ...

效果如下:

vue裡store的用法是什麼

#【相關推薦:《vue.js教學》】

以上是vue裡store的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn