這次帶給大家如何使用vuex操作state對象,使用vuex操作state對象的注意事項有哪些,以下是實戰案例,一起來看一下。
Vuex是什麼?
VueX 是一個專為 Vue.js 應用設計的狀態管理架構,統一管理和維護各個vue元件的可變化狀態(你可以理解成 vue 元件裡的某些 data )。
Vue有五個核心概念,state, getters, mutations, actions, modules。
總結
state => 基本資料
getters => 從基本資料衍生的資料
mutations => 提交更改資料的方法,同步!
actions => 像一個裝飾器,包裹mutations,使其可以非同步。
modules => 模組化Vuex
State
state即Vuex中的基本資料!
單一狀態樹
Vuex使用單一狀態樹,也就是用一個物件就包含了全部的狀態資料。 state作為建構器選項,定義了所有我們需要的基本狀態參數。
在Vue組件中獲得Vuex屬性
•我們可以透過Vue的Computed獲得Vuex的state,如下:
const store = new Vuex.Store({ state: { count:0 } }) const app = new Vue({ //.. store, computed: { count: function(){ return this.$store.state.count } }, //.. })
下面看下vuex操作state對象的實例代碼
每當store.state.count 變化的時候, 都會重新求取計算屬性,並且觸發更新相關聯的DOM。
每一個 Vuex 應用程式的核心就是 store(倉庫)。
引用官方文件的兩句話描述下vuex:
#1,Vuex 的狀態儲存是響應式的。當 Vue 元件從 store 讀取狀態的時候,若 store 中的狀態發生變化,那麼對應的元件也會相應地得到高效更新。
2,你不能直接改變 store 的狀態。改變 store 中的狀態的唯一方法就是明確地提交 (commit) mutation。這樣使得我們可以方便地追蹤每一個狀態的變化,從而讓我們能夠實現一些工具來幫助我們更好地了解我們的應用。
使用vuex裡的狀態
1,在根元件中引入store,那麼子元件就可以透過this.$store.state.資料名字得到這個全域屬性了。
我用的vue-cli建立的項目,App.vue就是根元件
App.vue的程式碼
<template> <p id="app"> <h1>{{$store.state.count}}</h1> <router-view/> </p> </template> <script> import store from '@/vuex/store'; export default { name: 'App', store } </script> <style> </style>
在component資料夾下Count.vue程式碼
<template> <p> <h3>{{this.$store.state.count}}</h3> </p> </template> <script> export default { name:'count', } </script> <style scoped> </style>
store.js的程式碼
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); const state = { count: 1 } export default new Vuex.Store({ state, })
2,透過mapState輔助函數得到全域屬性
這種方式的好處是直接透過屬性名稱就可以使用得到屬性值了。
將Component.vue的程式碼進行改變
<template> <p> <h3>{{this.$store.state.count}}--{{count}}</h3> <h4>{{index2}}</h4> </p> </template> <script> import { mapState,mapMutations,mapGetters } from "vuex"; export default { name:'count', data:function(){ return { index:10 } }, //通过对象展开运算符vuex里的属性可以与组件局部属性混用。 computed:{...mapState(['count']), index2() { return this.index+30; } } , } </script> <style scoped> </style>
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是如何使用vuex操作state對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!