vue.js中引入vuex储存接口数据及调用的详细流程


Posted in Javascript onDecember 14, 2017

前言

前几天在慕课网上看到黄轶老师的高仿饿了么app视频教程,在做接口设计的时候,我在想,这个接口能不能储存下来全局调用呢?而不是走很多次接口,管理起来也麻烦。

万能的vue果然有这个功能,那就是vuex。

Vuex 是一个主要应用在中大型单页应用的类似于 Flux 的数据管理架构。它主要帮我们更好地组织代码,以及把应用内的的状态保持在可维护、可理解的状态。

如果你不太理解 Vue.js 应用里的状态是什么意思的话,你可以想象一下你此前写的 Vue 组件里面的 data 字段。Vuex 把状态分成组件内部状态和应用级别状态:

  • 组件内部状态:仅在一个组件内使用的状态(data 字段)
  • 应用级别状态:多个组件共用的状态

举个例子:比如说有一个父组件,它有两个子组件。这个父组件可以用 props 向子组件传递数据,这条数据通道很好理解。

具体的实现流程,当然是先安装了

npm install vuex --save(推荐使用淘宝镜像cnpm,具体实施请自行百度)

然后建立个store.js的文件来管理数据

vue.js中引入vuex储存接口数据及调用的详细流程

里面的内容是这样的

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
 state:{
 },
 actions:{
 },
 mutations:{
 }
})

然后在main.js里面引入这个js文件

import store from './store.js'

然后就开始请求数据了,在mutations这个属性里写上

mutations:{
  getJson(){
   Vue.http.get('../data.json',{
    },{
    headers:{},
    emulateJSON:true
    }).then(response=>{
    this.state.newslist=response.data;
    },response=>{
     
    })
  }
 }

在这里写这样写是为了让actions调然后把数据存在state里面的,官网说这个是异步存数据,我理解的这个异步就跟ajax的异步加载一个意思,当然同步就是mutations了。但是异步的数据先写在mutations里面然后才能调用,所以就得在actions里面这样写

actions:{
  newJson(obj){
   obj.commit('getJson');
  }
 },

然后把把state写成这样

state:{
  newslist:[]
 },

这么写的目的是为了不报错,免得出现什么找不到之类的错误。

上面的newJson跟obj是我自定义的,你可以随便写,getJson就是mutations里面你要用的方法,方便等会分流用,这个getJson方法也可以加参数的,但参数必须是state,这个state就是上面state,不是自定义的。写死。

接下来在你的子组件里面就可以分流啦!

子组件里的代码是这样的:

import {mapState} from 'vuex';
computed:{
 ...mapState({
  goods:state=>state.newslist.goods,
  classMap:state=>state.classMap
 })
 }

在这里我自定义了个goods来代替state.newslist.goods,因为我的数据是

{
"goods":[]
}

这种格式,我嫌长,就缩短了下。

然后在html里面就可以直接调用了,这里贴一小块代码

<ul>
 <li v-for="(item,index) in goods" class="menu-item" :class="{'current':currentIndex===index}" @click="selectMenu(index,$event)">
 <span class="text border-1px">
 <span class="icon" v-show="item.type>0">
 </span>
 {{item.name}}
  </span>
  </li>
</ul>

基本上流程就是这样

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js对数字的格式化使用说明
Jan 12 Javascript
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
May 28 Javascript
javascript数组去重方法终极总结
Jun 05 Javascript
Node.js实现Excel转JSON
Apr 24 Javascript
javascript随机抽取0-100之间不重复的10个数
Feb 25 Javascript
jQuery实现的可编辑表格完整实例
Jun 20 Javascript
微信小程序 UI布局常用技巧整理总结
Dec 05 Javascript
vue自定义全局组件(自定义插件)的用法
Jan 30 Javascript
Vue组件和Route的生命周期实例详解
Feb 10 Javascript
vue组件横向树实现代码
Aug 02 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
Jul 30 Javascript
javascript实现数字配对游戏的实例讲解
Dec 14 #Javascript
form表单数据封装成json格式并提交给服务器的实现方法
Dec 14 #Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
Dec 14 #Javascript
vue项目中的webpack-dev-sever配置方法
Dec 14 #Javascript
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 #jQuery
原生js实现简单的焦点图效果实例
Dec 14 #Javascript
微信小程序实现图片懒加载的示例代码
Dec 13 #Javascript
You might like
php smarty的预保留变量总结
2008/12/04 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
Javascript 事件流和事件绑定
2009/07/16 Javascript
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
[01:03:50]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第二场 2月7日
2021/03/11 DOTA
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
python多线程并发实例及其优化
2019/06/27 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
大学生求职自荐信
2013/12/12 职场文书
老同学聚会感言
2014/02/23 职场文书
内衣营销方案
2014/03/15 职场文书
开学寄语大全
2014/04/08 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
个人催款函范文
2015/06/23 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android