美文网首页
2018-04-02

2018-04-02

作者: 小熊530 | 来源:发表于2018-04-02 22:46 被阅读0次

    vuex(二)

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


    111111111111111.png

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

    • 多个组件依赖同一个State,
    • 每个组件的方法会也需要跟变同一个State.
      组件之间层层嵌套也是一个非常繁琐的情况等等。

    所以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中的状态。如何在提交的时候跟踪数据的变化呢?

    相关文章

      网友评论

          本文标题:2018-04-02

          本文链接:https://www.haomeiwen.com/subject/tgjfhftx.html