1. 程式人生 > >vuex狀態管理模式之state屬性

vuex狀態管理模式之state屬性

一、Vuex是什麼?

vuex是用來專門管理vue元件中的共享資料的狀態管理模式。那vuex中狀態又是什麼東東呢?
我們在學習vuex時,我們先來回顧一下vuejs元件之間的資料通訊有哪幾種:

1、父元件向子元件發出通訊

  • 通過props關鍵字,也就是父元件繫結一個屬性,並且把 這個屬性通過關 props[‘attr’]傳遞給子元件。

2、子元件向父元件發出通訊

  • 子元件通過關鍵字emit(‘eventType’)向父元件發出通訊,父元件通過繫結該屬性來觸發dom的更新。

3、非父子元件的通訊

  • 非父子元件的通訊通常通過例項化一個空的vue構造器來管理狀態。
  • const bus = new Vue()
  • 然後在元件A內容通過bus.$emit(‘event’,params)發出一個事件。
  • 元件B內通過bus.$on(‘event’,params => console.log(params))來監聽元件A發來的請求。

*但是,隨著我們專案資料越來越龐大,上面幾種方式資料通訊有一些不好的地方。

  • 多個元件共享一個數據時,每個元件都需要props或者$emit會顯得特別的麻煩。
  • 資料管理不太明顯,單向資料的簡潔性遭到破壞,後期維護乏力。

vuex中的state屬性,學習該屬性時我們先來認識下什麼是vuex狀態?

  • 狀態也稱為資料來源,是vuex把元件中共享的data把它抽離出來放在單獨的state屬性下面,state它是一個物件,可以管理多個狀態。

現在我們來看一個小例子,比如我有兩個元件A和元件B

在專案根目錄下新建一個store資料夾,並在該資料夾下新建一個index.js檔案,為了在所有子元件內都能使用這個store,我們在入口js檔案(main.js)引入store資料夾下的index.js(通過import store from ‘./store’),再把store掛載在vue例項下面作為vue例項中的一個屬性store

store/index.js

Vue.use(Vuex);
export default new Vuex.Store({
state: { count: 0 }
});

元件A:
export default {
computed: { //通過計算屬性來返回count狀態,當狀態發生改變時,都會重新計算結果
count: function(){
return this.$store.state.count //
}
}
}

當A元件需要獲取多個狀態時,我們可以通過vuex提供的mapState輔助函式來幫助我們生成計算屬性,方便很多。

元件A:
import { mapState } from ‘vuex’ //單獨引入mapState方法

export default {
computed: mapState([‘狀態1’,’狀態2’,…])
}

*但是,如果如何將它與區域性計算屬性混合使用呢?我們可以通過es6提供的物件運算子…來合併多個物件。以便我們將最終物件傳遞給computed屬性。

export default {
computed: {
…mapState([‘狀態1’,’狀態2’,…]),
arrs: function(){ //這裡是我們的區域性計算屬性
return arr.filter(item => item.charCodeAt() > 110).join(”);
}
}
}

最後我們以後要增加其他資料時,直接可以把資料放在這個倉庫(store)檔案下,需要的該狀態時就直接通過mapState方法來引入該狀態。從而觸發我們檢視的更新。

相關推薦

vuex狀態管理模式state屬性

一、Vuex是什麼? vuex是用來專門管理vue元件中的共享資料的狀態管理模式。那vuex中狀態又是什麼東東呢? 我們在學習vuex時,我們先來回顧一下vuejs元件之間的資料通訊有哪幾種: 1、父元件向子元件發出通訊 通過props關鍵字,也就是父

vuex狀態管理模式Getters屬性

上一節中我們講到了state屬性,它是元件資料的一個狀態,今天我們來學習一下vuex中第二個屬性getters。 那什麼是Getters?它有什麼作用? Getters 我們可以理解為store倉庫的一個計算屬性,它的作用主要是用來派生出一些新的狀態。比如我

Vuex--狀態管理模式(store/state/Getter/Action/Mutation/Module)

Vuex 是什麼? Vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。 每一個 Vuex 應用的核心就是 store(倉庫)。“store”基本上就是一個容

簡述vue狀態管理模式vuex

瞭解vuex核心概念請移步 https://vuex.vuejs.org/zh/ 一、初始vuex 1.1 vuex是什麼 那麼先來看看這兩個問題: 什麼是vuex?官網說:Vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式。 按個人通俗理解來說就是:vuex就是用來管理各個元件之間的一些狀態,可

設計模式---狀態變化模式state狀態模式State

情況 ... 概念 擴展 pen com 耦合 new 發現 前提:狀態變化模式 在組建構建過程中,某些對象的狀態經常面臨變化,如何對這些變化進行有效的管理?同時又維持高層模塊的穩定?“狀態變化”模式為這一個問題提供了一種解決方案。 典型

Vuex狀態管理模式的面試題及答案

1、vuex有哪幾種屬性?答:有五種,分別是 State、 Getter、Mutation 、Action、 Module2、vuex的State特性是?答:一、Vuex就是一個倉庫,倉庫裡面放了很多物件。其中state就是資料來源存放地,對應於與一般Vue物件裡面的data二、state裡面存放的資料是響應

Vuex內容解析和vue cli項目中使用狀態管理模式Vuex

ces timeout AD 所有 vue ... 介紹 -- 組裝   中文文檔:vuex官方中文網站 一、vuex裏面都有些什麽內容? const store = new Vuex.Store({ state: { name: ‘weish‘,

理解Vue的狀態管理模式Vuex

pan 是把 存儲管理 route 並不會 怎麽 什麽事 新的 comment   Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。   狀態管理模式、集中式存儲管理

vuex 狀態管理state、getter、mutation和action

vuex 狀態管理 1. state的三種用法 直接獲取store的state computed: { count () { return this.$store.state.count } } 從mapState中獲取

23種設計模式 State模式狀態模式) C語言

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Vue.js狀態管理模式 Vuex

vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。 安裝、使用 vuex 首先我們在 vue.js 2.0 開發環境中安裝 vuex : npm insta

理解vuex -- vue的狀態管理模式

vuex是什麼? 先引用vuex官網的話: Vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。 狀態管理模式、集中式儲存管理 一聽就很高大上,蠻嚇人的。在我看來 

VUE 爬坑旅-- 用 Vuex 狀態管理來控制底部導航欄的顯示隱藏

在做 APP 類專案開發的時候,有一個很常見的需求就是 APP 通常有一個底部導航,點選導航的不同 tab 要切換到不同的介面,在這些通過導航切過去的介面上是需要顯示底部導航來讓使用者方便操作的。 除了這些帶導航的頁面之外,還有一些獨立的頁面是不需要底部導航的

Vuex ,一個專為 Vue.js 應用程式開發的狀態管理模式

vuex : 狀態管理器,能夠管理你的資料狀態   作用:將資料交給state集中管理、分發。   應用:用於複雜的頁面,一個數據被多個頁面或者路由共享(互相互動),或者多層級資料互動時可以使用vuex     參考地址:https://vuex.vuejs.o

vue store狀態管理模式

狀態管理 一、狀態管理(vuex)簡介 vuex是專為vue.js應用程式開發的狀態管理模式。它採用集中儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。vuex也整合刀vue的官方除錯工具devtools extension,提供

vuex狀態管理2

http 數據 org 註意 重復 異步操作 取數據 包含 vue 在vuex的官網https://vuex.vuejs.org中,提到的核心概念一共有5個,分別是State、Getter、Mutation、Action和Module,在上一篇隨筆中,我們主要用到其中的St

vuex狀態管理

安裝 cnpm i vuex –save 使用 建立檔案store.js引入必須檔案 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) 增加常量物件 const state

vuex狀態管理使用

1.前言: Vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式,可以理解為一個共享倉庫,可以實現多個元件共享狀態。 每一個 Vuex 應用的核心就是 store(倉庫),兩個特點: 1)Vuex 的狀態儲存是響應式的。當 Vue 元件從 store 中讀取狀

vue中的vuex狀態管理

Vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式,用來儲存共享的資料以及相關的狀態資料變化的操作。 每一個 Vuex 應用的核心就是 store(倉庫)。“store”基本上就是一個容器,它包含著你的應用中大部分的狀態 (state)。 store檔案中各個

【Vue】vuex狀態管理的使用,以登入狀態保持為例

一、Vuex概念        Vue.js通過Vuex對元件的公共狀態進行集中管理。每一個 Vuex 應用的核心是 store(倉庫),“store”可以理解為是一個容器,包含著應用中大部分的狀態 (state)。這些狀態是全域性的,但Vuex 和單