当前位置:首页 > 日记 > 正文

关于vuex的学习实践笔记

关于vuex的学习实践笔记

Vuex 简介

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

例如(travel store):

import * as types from '../types'//数据const state = { travelsList: [], searchKey: {  page: 0,  limit: 20 }, scroll: true}//用户行为(可以处理异步),触发 mutations 来改变 stateconst 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的改变,相应的组件也会相应的更新。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

相关文章

如何设置PPT2007演示文稿中图例区

如何设置PPT2007演示文稿中图例区

位置,图例,设置,如何设置,演示文稿,  众所周知,PPT插入图表之后,默认的图例区都是在图表下方的,这让不习惯的人很不适应,那么怎么修改PPT图例区的位置呢?以下是小编为您带来的关于设置PPT2007图例区的位置,希望对您有所帮助。设置PPT2007图例…

Excel2007中批量删除文本和控件对

Excel2007中批量删除文本和控件对

对象,批量删除,控件,操作方法,操作步骤,  当工作表中有很多控件或者图片等对象时,一个一个去删除会非常的繁琐。案例阐述了如何一次性删除整个工作表中图形、控件和影音等对象,方便快捷。今天,小编就教大家在Excel2007中批量删除文本和控件…

Js利用Canvas实现压缩功能

Js利用Canvas实现压缩功能

压缩,功能,电脑软件,Js,Canvas,最近做的APP项目涉及到手机拍照上传图片,因为手机拍照的图片通常都比较大,所以上传的时候就会很慢。为此,需要对图片进行压缩处理来优化上传功能。以下是具体实现:/* * 图片压缩 * img 原始图片 * width 压…

excel 2007窗体录入教程excel 2007

excel 2007窗体录入教程excel 2007

教程,窗体,电脑软件,excel,strong,  在把数据录入到Excel中,有些时候需要打代码进行调整,可以更有效的提高工作效率。下面是由小编分享的excel 2007窗体录入教程,希望对你有用。excel 2007窗体录入教程excel 2007窗体录入教程1:单击Excel2007…

js判断PC端与移动端跳转

js判断PC端与移动端跳转

移动端,跳转,电脑软件,js,PC,在网上看到很多这样类似的代码,但是有的很复杂,或者有的没有判断完全,上次经理去见完客户回来讲,使用苹果浏览打开pc端(pc已经做了识别跳转)会自动跳转到移动端的网页去,后来经测试才发现document.writeln(" 是否为移…

excel2007输入带圈字符的教程excel

excel2007输入带圈字符的教程excel

输入带,字符,教程,电脑软件,strong,  Excel中经常需要使用到输入带圈字符的功能,带圈字符具体该如何输入呢?下面是由小编分享的excel2007输入带圈字符的教程,以供大家阅读和学习。excel2007输入带圈字符的教程输入带圈符号步骤1:打开数据表,…

jq stop | 和:is | :animated的用

jq stop | 和:is | :animated的用

详解,区别,电脑软件,jq,stop,stop(true,true):表示停止匹配元素正在进行的动画并跳转到末状态,清空未执行完的动画队列。常用于”解决光标移入移出得过快导致的动画效果与光标动作不一致“问题!jQuery stop() 方法jQuery stop() 方法用于停止…

jQuery插件扩展操作入门示例

jQuery插件扩展操作入门示例

插件,扩展操作,示例,入门,电脑软件,本文实例讲述了jQuery插件扩展操作。分享给大家供大家参考,具体如下:如下DEMO 展示了为dom扩展一个myshowHtml 的方法<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script src="…

excel表格的批注功能使用方法

excel表格的批注功能使用方法

使用方法,表格,功能,电脑软件,excel,  Excel中的批注功能该如何使用呢?下面是由小编分享的excel表格的批注功能使用方法,以供大家阅读和学习。excel表格的批注功能使用方法:  添加批注步骤1:选择需要添加批注的单元格。添加批注步骤2:点击&…

ps如何按照步骤安装

ps如何按照步骤安装

安装,方法,步骤,安装步骤,电脑软件,  ps软件是可以进行安装的,但是安装步骤一定要准守。其实这个也不算太难,下面就让小编告诉你ps如何按照步骤安装的方法,一起学习吧。ps按照步骤安装的方法1、先准备软件,下载地址在工具里写出来咯。下载后…

JavaScript转换数据库DateTime字段

JavaScript转换数据库DateTime字段

字段类型,数据库,转换,方法,电脑软件,Javascript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标准通用标记语言下的一个…

详解javascript中对数据格式化的思

详解javascript中对数据格式化的思

格式化,数据,中对,详解,电脑软件,在实际应用场景中,我们常常需将一些数据输出成更加符合人类习惯阅读的格式。保留小数点后面两位在一些要求精度没有那么准确的场景下,我们可以直接通过Number.prototype.toFixed()来实现保留小数点两位这样的…