Vuex 简介

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
例如(travel store):
import * as types from '../types'
//数据
const state = {
travelsList: [],
searchKey: {
page: 0,
limit: 20
},
scroll: true
}
//用户行为(可以处理异步),触发 mutations 来改变 state
const actions = {
/**
* 获取约跑步列表
*/
getTravelsList({ commit }) {
if(state.scroll) {
commit(types.GET_TRAVELS_PAGE_NUM)
commit(types.COM_LOADING_STATUS, true),
commit(types.GET_TRAVELS_SCORLL_STATUS, false)
api.TravelsList()
.then(res => {
console.log(res)
commit(types.COM_LOADING_STATUS, false),
commit(types.GET_TRAVELS_SCORLL_STATUS, true)
commit(types.GET_TRAVELS_LIST, res)
})
}
},
/**
* 参加
*/
joinTravel({ commit }, id) {
...
}
}
//可以过滤 state 中的数据
const getters = {
travelsList: state => state.travelsList,
travelListIndex: state => state.travelsList.slice(0,4)
}
//唯一能改变 state 的方法(纯函数)
const mutations = {
[types.GET_TRAVELS_LIST](state, res) {
if(state.searchKey.page <= 1) {
state.travelsList = res.data
} else {
state.travelsList = state.travelsList.concat(res.data)
}
},
[types.GET_TRAVELS_SEARCH_KEY](state, params) {
state.searchKey = params
},
[types.GET_TRAVELS_PAGE_NUM](state) {
state.searchKey['page'] += 1
},
[types.GET_TRAVELS_SCORLL_STATUS](state, status) {
state.scroll = status
}
}
//导出一个 travel store 模块
export default {
state,
actions,
getters,
mutations
}
每一个 Vuex 应用的核心就是 store(仓库)。”store” 基本上就是一个容器,它包含着你的应用中大部分的状态(state)数据。
Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。
你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交(commit) mutations。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。
用一张图来理解一下
客户端(Client) -> action -> mutations -> state -> 客户端
可以看出在vuex中数据是单一流向的:视图(view)触发action,action提交(commit)到mutations,mutations改变state(数据),state的改变,相应的组件也会相应的更新。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# vuex教程
# vuex
# 文档
# vue.js
# 如何使用Vuex+Vue.js构建单页应用
# vuex实现简易计数器
# 关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
# Vuex2.0+Vue2.0构建备忘录应用实践
# 巧用Vue.js+Vuex制作专门收藏微信公众号的app
# 如何快速上手Vuex
# 基于vue2.0+vuex的日期选择组件功能实现
# 基于vue2.0+vuex+localStorage开发的本地记事本示例
# Vue 2.X的状态管理vuex记录详解
# Vue.js实战之使用Vuex + axios发送请求详解
# 也会
# 客户端
# 是一个
# 让我们
# 我们可以
# 可以看出
# 这篇文章
# 并以
# 谢谢大家
# 专为
# 含着
# 中大
# 程序开发
# 一张图
# 集中式
# 更好地
# 有疑问
# searchKey
# state
# travelsList
相关文章:
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
香港网站服务器数量如何影响SEO优化效果?
广州美橙建站如何快速搭建多端合一网站?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
网站设计制作公司地址,网站建设比较好的公司都有哪些?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
如何通过虚拟机搭建网站?详细步骤解析
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
如何配置IIS站点权限与局域网访问?
如何零基础在云服务器搭建WordPress站点?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
建站为何优先选择香港服务器?
学校为何禁止电信移动建设网站?
如何生成腾讯云建站专用兑换码?
如何配置FTP站点权限与安全设置?
建站之星24小时客服电话如何获取?
如何通过VPS建站实现广告与增值服务盈利?
教学论文网站制作软件有哪些,写论文用什么软件
?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
如何用免费手机建站系统零基础打造专业网站?
如何在新浪SAE免费搭建个人博客?
外贸公司网站制作哪家好,maersk船公司官网?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
清除minerd进程的简单方法
打鱼网站制作软件,波克捕鱼官方号怎么注册?
建站之星Pro快速搭建教程:模板选择与功能配置指南
西安大型网站制作公司,西安招聘网站最好的是哪个?
如何快速搭建虚拟主机网站?新手必看指南
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
如何在企业微信快速生成手机电脑官网?
如何选择PHP开源工具快速搭建网站?
海南网站制作公司有哪些,海口网是哪家的?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星如何通过成品分离优化网站效率?
如何设置并定期更换建站之星安全管理员密码?
建站VPS配置与SEO优化指南:关键词排名提升策略
如何用wdcp快速搭建高效网站?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
建设网站制作价格,怎样建立自己的公司网站?
如何登录建站主机?访问步骤全解析
安云自助建站系统如何快速提升SEO排名?
,南京靠谱的征婚网站?
b2c电商网站制作流程,b2c水平综合的电商平台?
高端建站三要素:定制模板、企业官网与响应式设计优化
如何在IIS中新建站点并配置端口与IP地址?
建站主机空间推荐 高性价比配置与快速部署方案解析
C#如何序列化对象为XML XmlSerializer用法
*请认真填写需求信息,我们会在24小时内与您取得联系。