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表单验证函数
Oct 28 Javascript
JavaScript实现多维数组的方法
Nov 20 Javascript
node.js使用require()函数加载模块
Nov 26 Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
May 13 Javascript
AngularJS应用开发思维之依赖注入3
Aug 19 Javascript
angular框架实现全选与单选chekbox的自定义
Jul 06 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
Oct 14 Javascript
基于JavaScript实现报警器提示音效果
Oct 27 Javascript
Angularjs实现页面模板清除的方法
Jul 20 Javascript
layer弹出层扩展主题的方法
Sep 11 Javascript
javascript canvas实现雨滴效果
Jun 09 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 无限分类的树类代码
2009/12/03 PHP
php strstr查找字符串中是否包含某些字符的查找函数
2010/06/03 PHP
使用php批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
新浪中用来显示flash的函数
2007/04/02 Javascript
Ext 表单布局实例代码
2009/04/30 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
Python实现的密码强度检测器示例
2017/08/23 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
Java的五个基础面试题
2016/02/26 面试题
EJB与JAVA BEAN的区别
2016/08/29 面试题
公司开业庆典主持词
2014/03/21 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
师德师风演讲稿
2014/05/05 职场文书
实施意见格式范本
2015/06/05 职场文书
预备党员入党感想
2015/08/10 职场文书
清明节主题班会
2015/08/14 职场文书