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 相关文章推荐
jquery限定文本框只能输入数字即整数和小数
Nov 29 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
javascript仿百度输入框提示自动下拉补全
Jan 07 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
Jan 12 Javascript
微信小程序  生命周期详解
Oct 27 Javascript
JS公共小方法之判断对象是否为domElement的实例
Nov 25 Javascript
基于JavaScript实现类名的添加与移除
Apr 23 Javascript
Node.js实现文件上传的示例
Jun 28 Javascript
JavaScript实现单例模式实例分享
Dec 22 Javascript
再谈Angular4 脏值检测(性能优化)
Apr 23 Javascript
小程序中设置缓存过期的实现方法
Jan 14 Javascript
微信小程序实现锚点跳转
Nov 23 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实现登陆验证码(类似条行码状)
2006/10/09 PHP
php 安全过滤函数代码
2011/05/07 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
Python全局变量用法实例分析
2016/07/19 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
Python assert语句的简单使用示例
2019/07/28 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Pytorch中.new()的作用详解
2020/02/18 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
Solaris操作系统的线程机制
2015/07/28 面试题
初一地理教学反思
2014/01/16 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
爱护花草树木的标语
2014/06/11 职场文书
加油口号大全
2014/06/13 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
员工年终考核评语
2014/12/31 职场文书
2016国培研修心得体会
2016/01/08 职场文书
delete in子查询不走索引问题分析
2022/07/07 MySQL