站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        vue里store的用法是什么

        在vue中,store用于管理狀態(tài)、共享數(shù)據(jù)以及在各個(gè)組件之間管理外部狀態(tài),store是vuex應(yīng)用的核心,也就是一個(gè)容器,包含著應(yīng)用中大部分的狀態(tài),更改store中的狀態(tài)唯一方法是提交mutation。

        vue里store的用法是什么

        本文操作環(huán)境:windows10系統(tǒng)、Vue2.9.6版,DELL G3電腦。

        vue里store的用法是什么

        Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化。

        每一個(gè) Vuex 應(yīng)用的核心就是 store(倉(cāng)庫(kù))。“store”基本上就是一個(gè)容器,它包含著你的應(yīng)用中大部分的狀態(tài) (state)。Vuex 和單純的全局對(duì)象有以下兩點(diǎn)不同:

        Vuex 的狀態(tài)存儲(chǔ)是響應(yīng)式的。當(dāng) Vue 組件從 store 中讀取狀態(tài)的時(shí)候,若 store 中的狀態(tài)發(fā)生變化,那么相應(yīng)的組件也會(huì)相應(yīng)地得到高效更新。

        你不能直接改變 store 中的狀態(tài)。改變 store 中的狀態(tài)的唯一途徑就是顯式地提交 (commit) mutation。這樣使得我們可以方便地跟蹤每一個(gè)狀態(tài)的變化,從而讓我們能夠?qū)崿F(xiàn)一些工具幫助我們更好地了解我們的應(yīng)用。

        store 的核心概念

        state 表示了 store 中的狀態(tài),類似于 vue 實(shí)例中的 data 屬性。

        Mutation

        更改 Vuex 的 store 中的狀態(tài)的唯一方法是提交 mutation。

        Vuex 中的 mutation 非常類似于事件:每個(gè) mutation 都有一個(gè)字符串的 事件類型 (type) 和 一個(gè) 回調(diào)函數(shù) (handler)。這個(gè)回調(diào)函數(shù)就是我們實(shí)際進(jìn)行狀態(tài)更改的地方,并且它會(huì)接受 state 作為第一個(gè)參數(shù)

        Action

        Action 類似于 mutation,不同在于:

        Action 提交的是 mutation,而不是直接變更狀態(tài)。

        Action 可以包含任意異步操作。

        一個(gè)示例

        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 之后,讓我們來創(chuàng)建一個(gè) store。創(chuàng)建過程直截了當(dāng)——僅需要提供一個(gè)初始 state 對(duì)象和一些 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 實(shí)例提供創(chuàng)建好的 store。Vuex 提供了一個(gè)從根組件向所有子組件,以 store 選項(xiàng)的方式“注入”該 store 的機(jī)制。

        也就是在 main.js 文件中導(dǎo)入,并注冊(cè)到 vue 根實(shí)例中:

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

        然后就可以在任意一個(gè) vue 組件的 methods 方法屬性下通過 store.commit('increment')來調(diào)用:

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

        效果如下:

        vue里store的用法是什么

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 久久国产精品无码一区二区三区| 欧美精品国产一区二区| 国产精品福利一区二区| 亚洲国产精品特色大片观看完整版| 成人国内精品久久久久影院VR| 国产探花在线精品一区二区| 无码国模国产在线无码精品国产自在久国产 | 久久精品无码专区免费| 99热亚洲精品6码| 久久se精品一区二区| 2022国产精品不卡a| 精品欧洲av无码一区二区| 亚洲乱码精品久久久久..| 久久久久无码精品| 国产香蕉国产精品偷在线| 国产精品成| 国产精品麻豆入口| 欧美精品免费观看二区| 国产成人精品福利网站在线| 精品性影院一区二区三区内射 | 精品无码人妻一区二区三区品| 最新精品露脸国产在线| 久久精品二区| 久久se这里只有精品| 精品久久久久国产免费| 惠民福利中文字幕人妻无码乱精品 | 真实国产精品vr专区| 正在播放国产精品每日更新| 自拍偷在线精品自拍偷| 亚洲国产精品无码久久久蜜芽 | 国产一区二区精品久久凹凸| 国产精品白丝jkav网站| 国产亚洲美女精品久久久| 久久99精品久久久久久噜噜| 久久久久九国产精品| 亚洲?V无码乱码国产精品| 亚洲欧洲成人精品香蕉网| 久久99国产乱子伦精品免费| 99re这里只有精品国产精品| 欧美精品在线一区| 国产精品99精品视频网站|