全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

关于vuex的学习实践笔记

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小时内与您取得联系。