Vuex

一、引入Vuex

前提注意点:

1.如果想要在子组件中使用父组件中的数据, 那么必须通过父组件传递

2.如果想要在子组件中使用祖先组件中的数据, 那么就必须一层一层的传递

3.兄弟组件之间不能直接传递数据, 如果兄弟组件之间想要传递数据, 那么就必须借助父组件

虽然通过借助父组件能够实现兄弟组件之间的数据传递, 但是这种方式非常的复杂, 非常的不推荐

那么当前在企业开发中我们遇到了两个问题:

1.如果想要在子组件中使用祖先组件中的数据, 那么就必须一层一层的传递(非常麻烦)

2.兄弟组件之间不能直接传递数据, 如果兄弟组件之间想要传递数据, 那么就必须借助父组件(非常麻烦)

解决方案: 使用Vuex

二、什么是Vuex?

    vuex 是 Vue 配套的 公共数据管理工具,它可以把一些共享的数据,保存到 vuex 中,

方便整个程序中的任何组件直接获取或修改我们的公共数据。

注意点:

    只有需要共享的才放到vuex上, 不需要共享的数据依然放到组件自身的data上。

二、如何使用vuex,实现共享数据

1、导入Vuex(注意点:在导入Vuex之前必须先导入Vue)

2、创建Vuex对象

创建Vuex

3、在祖先组件中添加store的key保存Vuex对象

组件中添加store , 保存Vuex对象

4、在使用Vuex中保存的共享数据的时候, 必须通过如下的格式来使用

使用共享数据

this.$store.state.msg中this.$store表示的就是当前的组件,组件所含有的state属性,因为这个属性实际上是一个对象,所以又用.msg的方式进行访问。

三、用Vuex修改数据

注意点:在Vuex中不推荐直接修改共享数据


结果示意图

结果正如上方所示,当点击第一个儿子的增加按钮时,由于修改的是共享的数据,导致二儿子的结果也会增加一,所以当出现问题时,无法找出是哪一个儿子所产生的。

解决办法:

在Vuex创建时,增加一个mutations对象,用于保存修改共享数据的方法

注意点:在执行mutations中定义的方法的时候,系统会自动给这些方法传递一个state参数,state参数就保存了共享的数据

修改数据示例

四、    Vuex-getters

getters的作用和组件中的computed的作用是一样的,起到了缓存作用,当数据已经加载过一次以后,重复利用时不会进行二次加载。

computed示例
getters示例
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容