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 相关文章推荐
载入进度条 效果
Jul 08 Javascript
Input 特殊事件onpopertychange和oninput
Jun 17 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
Jun 23 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
May 14 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
Aug 08 Javascript
js封装可使用的构造函数继承用法分析
Jan 28 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
May 26 Javascript
Vue实现自带的过滤器实例
Mar 09 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
详解angularjs跨页面传参遇到的一些问题
Nov 01 Javascript
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
Jun 15 Javascript
React自定义hook的方法
Jun 25 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正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
ThinkPHP删除栏目(实现批量删除栏目)
2017/06/21 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
详解Vue.js入门环境搭建
2017/03/17 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
python实现公司年会抽奖程序
2019/01/22 Python
Python语法分析之字符串格式化
2019/06/13 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
班组建设经验交流材料
2014/05/12 职场文书
安全生产承诺书范文
2014/05/22 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
教师个人教学反思
2016/02/23 职场文书
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL