Vuex是否可以理解成为组件间的通信机制

来源:3-5 vuex介绍

绝尘kinoko

2019-05-29 13:58

我类比了一下Vuex与Linux的管道和Websocket,感觉上有一点类似的地方:

-都是有一个共享资源;

-主要包括消息接收与发送两个部分;

ws负责的是服务端与客户端之间的通信,Vuex负责的是Vuex.js与各组件之间的通信。


但是这么一来store里面的对象为什么不是data,而是state,这么想岂不是当成了全局变量;

而且如果只是为了实现在info里面add,在about里面数字++的效果,Vue里面应该有更方便的消息传递机制才对,而不是通过中转来实现。

还请老师和各位热心的朋友们看一下我的理解是否有问题。

写回答 关注

2回答

  • Brian
    2019-05-30 22:56:45
    已采纳

    你可以看看vuex的概念,如果把state单纯当成是全局变量是不对的。

    1. vuex不单纯是起到了“全局变量”的作用

    它加入了单向数据流的机制,所以如果是单纯的全局变量,所有人都能改,那就乱套了不是。

    store里面的state,只能通过mutations来改。

    而且加入了一些新的特性,比如actions(异步),getters(计算属性),这些在实际的项目中,都是非常好用的。

    2. 组件间的通信方式还有很多种,选择合适项目本身的才最重要

  • 绝尘kinoko
    2019-05-31 08:53:43

    谢谢老师的回复,我弄明白了:

    1,action里面是用来写commit的,这些在课程中被写在了组件的函数里,getters相当于computed;

    2,Vuex是取代Props这种父子组件传值,且弥补兄弟组件传值手段的方法。

3小时速成 Vue2.x 核心技术

带你快速学习最流行的前端框架vue2.x的核心技术

82559 学习 · 487 问题

查看课程

相似问题