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

Vuex结构图

下图是我总结的Vuex结构图。

Vuex用法

以一个Vue项目中的商家信息搜索功能为例,记录Vuex的使用。

分析搜索功能的实现:

1、发送ajax请求,得到后台响应的数据,将结果展现在界面上。

2、界面的显示一定是根据数据展示的。

编码流程:

1、写接口函数发送ajax请求;

2、写Vuex;

(1)先写state:先确定要保存一个什么样的状态?发送请求后响应得到的搜索商家列表searchShops: [] 。

searchShops: [] // 搜索商家列表

(2)写mutation-types:

export const RECEIVE_SEARCH_SHOPS = 'receive_search_shops' // 接收搜索的商品数组

(3)写mutations:改变state

[RECEIVE_SEARCH_SHOPS](state, {searchShops}) {

state.searchShops = searchShops

},

(4)写actions:

//异步搜索商家列表

async searchShop({commit, state}, keyword) {

//从state中解构得到经纬度数据

const {latitude, longitude} = state

// 发送异步ajax请求,获取搜索商家列表result

const result = await reqSearchGoods(latitude+','+longitude, keyword)

// 等待异步函数执行完之后,再执行下一行的提交 mutation

// 提交一个 mutation 请求,与 mutations 模块中更新状态的方法名称一致

// commit(更新状态的方法名称,{更新的数据})

// 这里之所以是 result.data 是从api文档查看的

commit(RECEIVE_SEARCH_SHOPS, {searchShops: result.data})

}

3、写组件,组件模板:静态==》动态。

(1)在组件的methods中触发actions

const keyword = this.keyword.trim()

// 分发事件

this.$store.dispatch('searchShop', keyword)

(2)分发事件后,Vuex中就有返回的数据了,此时先去浏览器开发工具的Devtools中的Vuex中查看。

(3)有了数据之后,将数据读取展现在组件中。

3.1)在组件中引入{mapState}

import {mapState} from 'vuex'

3.2)在计算属性中:

computed: {

...mapState(['searchShops'])

},

3.3)取数据到静态组件模板中:

{{}}

ajax结构图,Vuex结构图及用法相关推荐

  1. Vue--- VueX基础 (Vuex结构图数据流向)1.1

    Vuex基础 https://vuex.vuejs.org/zh-cn state --> view --> action -> state 多组件共享状态, 之前操作方式,由父组件 ...

  2. 在vue中 storge 和vuex使用的用法区别

    在vue中 storge 和vuex使用的用法区别 1.联动性:storge对于属性的改变不能触发其他页面的改动 storage: 存取login之后就不会改变的信息,比如userId, isAdmi ...

  3. vue之mapMutaions的使用 vuex中 action 用法示例 api.js的使用

    vue之mapMutations的使用 我们通过Mutation来改变store中的state,方法往往是在子组件中使用 this.$store.commit(); 来实现,但是这样的缺点是不容易查看 ...

  4. Ajax Toolkit AutoComplete 几种用法

    AutoComplete控件是微软提供的 AJAX Control Toolkit 控件,是用来实现类似google 自动匹配和完成效果. AutoComplete控件的用法很简单,只需要页面一个Te ...

  5. Asp.net Ajax AutoComplete 控件的用法

    AutoComplete控件是微软提供的ASP.NET AJAX Control Toolkit 中的一个控件,是用来实现类似百度搜索的自动完成效果. AutoComplete控件的用法很简单,只要在 ...

  6. ajax complete写法,JQuery ajaxComplete()用法及代码示例

    ajaxComplete()方法用于指定AJAX请求完成时要运行的功能. 用法: $(document).ajaxComplete(function(event, xhr, options)) 参数: ...

  7. vuex ajax dev,vuex中使用ajax的话如何维护状态?

    例如,我在初始化状态的时候,在action里面写了一个函数异步去获取初始化数据然后初始化vuex的状态,但是这样子的话我在组件里面就获取不了这个状态了,代码: actions export const ...

  8. Vuex的全面用法总结

    1. vuex简介 vuex是专门用来管理vue.js应用程序中状态的一个插件.他的作用是将应用中的所有状态都放在一起,集中式来管理.需要声明的是,这里所说的状态指的是vue组件中data里面的属性. ...

  9. Ajax — cropper (图片剪裁)基本用法

    jQuery-cropper插件完整的API:http://www.jq22.com/jquery-info9322 1. 基本使用步骤 在 <head> 中导入 cropper.css ...

最新文章

  1. 解决onclick事件调用其它带参数的函数方法无效的问题
  2. php把数组转为字符串函数,php把数组转为字符串用什么函数
  3. IOS操作数据库总结
  4. HelloWorld CMake Demo 03:CMake中构建静态库与动态库及其使用
  5. SAP Spartacus SimpleResponsiveBannerComponent url 的数据源
  6. leetcode201. 数字范围按位与
  7. Centos7重装系统保留数据
  8. 表单设计器 k-form-design
  9. 什么是https安全证书
  10. 保持hlist_node内存的紧凑性连续性以提高遍历性能
  11. 《工程伦理与学术道德》第二章习题
  12. 从黄金时代到没落尽头,“寻求出售”的GoPro遭遇了什么?
  13. 基于VMware12虚拟机的Hadoop3.1.2伪分布式安装(含各软件百度云下载地址、安装过程中各类问题的解决方案)
  14. matlab 写word文档,用Matlab生成Word文档
  15. 生物信息百Jia软件(六):prodigal
  16. 计算机组成原理乘法器实验报告,Booth乘法器实验报告
  17. MATLAB unwrap应用
  18. java游戏循环_利用Java循环语句实现攻击防御塔小游戏
  19. paypal支付与退款
  20. 十年研发飞天操作系统 阿里云成新实体经济基础设施

热门文章

  1. sudo mysql压缩备份解压操作_高效管理文件之压缩及解压缩 .bz2 文件
  2. flume连接kafka_日志收集系统架构设计:(flume+zookeeper+kafka+php+mysql )
  3. matlab中直到循环语句,Matlab再次执行循环,直到第一条语句结束
  4. cam350怎么看顶层_厉害的人是怎么分析问题的?(实操干货)
  5. 亚马逊产品描述计算机语言编辑,亚马逊Listing产品描述编辑讲解
  6. python数据展示库_收藏!盘点很实用的数据科学Python库
  7. azure mysql on vnet_管理 VNet 终结点 - Azure 门户 - Azure Database for MySQL | Microsoft Docs
  8. 解决pom文件第一行报错(unknown)-亲测有效
  9. 深度残差网络_注意力机制+软阈值化=深度残差收缩网络
  10. 添加编译宏_软件开发——编译链接