vuex

vuex的作用,状态管理工具,可存储所有组件的公共状态,可以解决多个子组件通信问题。组件通过dispatch方法调用actions对象里面的方法,actions通过commit方法调用mutation对象里面的方法,mutation利用mutate改变state。state改变会改变组件的视图变化。
在这里插入图片描述
vuex的核心是store仓库,包含所有的state、getters、mutations、actions

1.安装:npm install vuex --save
2.安装后重启 npm run dev
3.vue里新建一个.js文件,然后在入口文件main.js中全局注册下。注:一般需要在根节点注入store对象如在main.js中import store from ‘./url’,这样可以在其他的组件中利用this.$store来访问store对象里想属性和方法。

 import Vuex from 'vuex'
 Vue.use(Vuex)
 const store  = new 	Vuex.Store({
     state: {'xxxxx数据'}
})
export default  store

在这里插入图片描述
应用事例:/store/store.js
state
用于保存最基本的数据,类似vue的data对象,但是不同的是在vuex中不可以直接修改state里的值,而是需要通过commit提交mutation来间接实现对state的修改目的。
actions
action可以包含任何异步操作,不直接修改state,而是通过提交mutation。action需要通过this.$store对象调用dispatch方法来触发。
mutation
用于修改state状态,mutations对象中的函数要是同步函数,以便修改可以用调试工具进行调试。
当为state中的数据添加属性时,不能直接添加,需要利用set()方法实现。Vue.$set ( this.$store.state.obj, name, newvalue) 或者利用新的对象来替换原来的对象, eg:state.obj={…state.obj, newProperty:111} 表示将state中的obj对象重新引用到一个新对象,…state.obj利用es6的解构赋值序列化原来obj对象里的属性与新属性newProperty一起组成新对象的属性。
在这里插入图片描述
在这里插入图片描述

action中的操作可以是异步的。但是mutation中的操作是同步的
在这里插入图片描述
vuex的高级使用–mapState辅助函数+computed计算属性、mapMutations

一篇不错的vuex知识的资料: https://www.cnblogs.com/ghost-xyx/p/6380689.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值