2018-04-02

2018-04-02  本文已影响0人  小熊530

vuex(二)

文档中给出了一个vuex的“单项数据流”的图,证明vuex依然遵循vue.js单项数据流的特点,代表数据的State————>View————>Actions————>State。数据到模板中,跟踪状态的变化,再回到数据源。顺序不能反。


111111111111111.png

文档中提到多个组件共享状态时,单向数据流的简洁性很容易被破坏。
原因是:

所以vuex将所有组件的需要的共享状态抽取出来,以一个全局单例模式管理。也就是将所有数据放在所有组件都能访问的全局中,这样一个所有的组件都能获取到State和Actions,那么什么是全局单例管理呢?


2222222222222222.png

每太看懂写个图。。。。先继续看吧

什么情况下使用vuex

优点:vuex可以帮助我们管理组件的共享状态。
缺点:vuex附带了更多的概念和框架,

也是说需要开发大型单页应用就使用vuex,否则没必要(可以用 global event bus )。

开始

每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。

vuex里面有一个叫store的仓库,这个仓库是全局的,是一个容器,这个容器是用来存储组件的共享数据。 我感觉也是vuex整个流程的起点

文档中描述:
Vuex 和单纯的全局对象有以下两点不同:

  1. Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。

  2. 你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。

1:

第一点比较好理解,vuex的store就是一个全局的超大型的data,(因为data里面的状态是响应式的,哈哈,原谅我暂时这样理解。。。)

2:

第二点,和普通的父子组件感觉上有那么一丢丢相识之处,子组件不能直接修改父组件数据,只能通过上传事件,而vuex只能通过显示提交mutation来修改store中的状态。如何在提交的时候跟踪数据的变化呢?

上一篇下一篇

猜你喜欢

热点阅读