[导读]这篇文章主要介绍了vue+vuex+axio从后台获取数据存入vuex,组件之间共享数据

在vue项目中组件间相互传值或者后台获取的数据需要供多个组件使用的情况很多的话,有必要考虑引入vuex来管理这些凌乱的状态,今天这边博文用来记录这一整个的过程,后台api接口是使用webpack-server模拟的接口,这个前面的文章中有提到,需要的可以去翻阅。

整个的流程是在组件的created中提交dispatch,然后通过action调用一个封装好的axios然后再触发mutation来提交状态改变state中的数据,然后在组件的计算属性中获取state的数据并渲染在页面上

首先新需要在项目中安装vuex:

运行命令npm install vuex --save-dev

在项目的入口is文件main.js中import store from './store/index'

并将store挂载到vue上new Vue({

el: '#app',

router,

store,

template: '',

render: (createElement) => createElement(App)

})

然后看下整个store的目录结构,modules文件夹用来将不同功能也面的状态分成模块,index.js文件夹是store的入口文件,types文件夹是定义常量mutation的文件夹

整个vuex的目录结构如下:

这里我新建了文件夹fetch用来编写所有的axios处理和axios封装

在fetch文件夹下新建api.js文件:import axios from 'axios'

export function fetch(url, params) {

return new Promise((resolve, reject) => {

axios.post(url, params)

.then(response => {

alert('Api--ok');

resolve(response.data);

})

.catch((error) => {

console.log(error)

reject(error)

})

})

}

export default {

// 获取我的页面的后台数据

mineBaseMsgApi() {

alert('进入api.js')

return fetch('/api/getBoardList');

}

}

在store的入口文件index.js中:import Vue from 'vue'

import Vuex from 'vuex'

import mine from './modules/mine';

Vue.use(Vuex);

export default new Vuex.Store({

modules: {

mine

}

});

在你需要请求后台数据并想使用vuex的组件中的created分发第一个dispatch:created() {

this.$store.dispatch('getMineBaseApi');

}

然后在store/modules下的对应模块js文件中,这里我使用的mine.js文件中编写state、action和mutationimport api from './../../fetch/api';

import * as types from './../types.js';

const state = {

getMineBaseMsg: {

errno: 1,

msg: {}

}

}

const actions = {

getMineBaseApi({commit}) {

alert('进入action');

api.mineBaseMsgApi()

.then(res => {

alert('action中调用封装后的axios成功');

console.log('action中调用封装后的axios成功')

commit(types.GET_BASE_API, res)

})

}

}

const getters = {

getMineBaseMsg: state => state.getMineBaseMsg

}

const mutations = {

[types.GET_BASE_API](state, res) {

alert('进入mutation');

state.getMineBaseMsg = { ...state.getMineBaseMsg, msg: res.data.msg }

alert('进入mutations修改state成功');

}

}

export default {

state,

actions,

getters,

mutations

}

然后在想取回state的组件中使用mapgetters获取state:import { mapGetters } from 'vuex';

export default {

...

computed: {

...mapGetters([

'getMineBaseMsg'

])

},

...

然后在控制台查看把:

getter和mutation都已经成功了,同时我在提交state的整个过程都添加了alert,大家可以看看整个流程是如何走的。

vuex获取php数据,vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据相关推荐

  1. vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据

    vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据 在vue项目中组件间相互传值或者后台获取的数据需要供多个组件使用的情况很多的话,有必要考虑引入vuex来管理这些凌乱的状态,今 ...

  2. vue根据url获取内容axios_vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据...

    在vue项目中组件间相互传值或者后台获取的数据需要供多个组件使用的情况很多的话,有必要考虑引入vuex来管理这些凌乱的状态,今天这边博文用来记录这一整个的过程,后台api接口是使用webpack-se ...

  3. react 组件怎么公用_在React中的组件之间共享数据

    我正在开发使用Meteor和React作为视图引擎的应用程序 考虑下图: 当触发C4按钮单击事件时,我需要更改C2组件状态.由于他们没有直接关系,因此我无法直接从C4进入C2状态. 另一个示例是从Co ...

  4. docker 容器共享数据_如何在Docker容器之间共享数据

    docker 容器共享数据 介绍 (Introduction) Docker is a popular containerization tool used to provide software a ...

  5. vue.js 组件之间传递数据

    前言 组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.如何传递数据也成了组件的重要知识点之一. 组件 组件与组件之间,还存在着不同的关 ...

  6. WEB前端 vue学习二 组件之间的数据传递

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...

  7. vue.js 组件之间传递数据 1

    vue.js 组件之间传递数据 框架 浏览数:437 2017-8-21 组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.如何传递数据 ...

  8. uniapp 子组件 props拿不到数据_谈一谈使用 webpack 开发时,Vue 组件之间的数据传递...

    •我们在学习Vue的时候,难免会使用各个组件之间传递数据.•先来介绍一下Vue中组件传递的方式,有父组件传递给子组件数据,子组件传递给父组件数据,父组件直接获取子组件中数据,子组件直接获取父组件数据以 ...

  9. 【Vue组件传值】不同的组件之间的数据传值方法

    不同的组件之间的数据传值方法 父组件向子孙组件传值.通过方法provide / inject (1)provide/inject的介绍: provide/ inject 是vue2.2.0新增的api ...

  10. Vue之组件之间的数据传递

    Vue的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据,必须使用特定的方法才能实现组件之间的数据传递. 下列为在vue-cli创建项目中的操作 一·父组件向子组件传递数据 在Vue中 ...

最新文章

  1. R语言使用pROC包绘制ROC曲线、获取最优阈值(threshold)及最优阈值对应的置信区间
  2. centos8.2 hyper第一代 第二代_欧洲第一代法王以工程师身份加入拳头游戏,网友齐呼:是真的牛...
  3. 去上海参加MySQL 用户大会的感受
  4. 用100元买100支笔c语言,用C编程!有100块钱,买100支笔,其中钢笔3元,圆珠笔2元,铅笔0.5元,问各买多少支?...
  5. Linux如何禁用rc4加密算法,使用arc4算法的linux内核加密子系统
  6. Linux的mmap内存映射机制解析
  7. 用香港服务器建收费网站,使用香港站群服务器搭建网站的好处有哪些?
  8. python 任务调度 celery_斑马斑马-09-白云之上-python任务调度之celery
  9. 蓝桥杯-天干地支问题
  10. win软件推荐:ACDSee Photo Studio Ultimate 2022(图片编辑器)
  11. 秦时明月更新了?青春回来了
  12. 数据分析师等级主要分为哪几个级别?
  13. 大数据教学整套视频及源码
  14. RT-Thread:RW007-连接WIFI
  15. 安卓Web Service实现天气预报功能
  16. A-Priori算法及其优化(FP树)
  17. 吊打面试官!MySQL和Oracle灵魂100问,你能答出多少?
  18. 力扣刷题记录_字符串(自学)
  19. 告诉你怎样选择虚拟主机!
  20. cpu上干硅脂怎么清理_被骗很久!这才是给CPU涂硅脂正确方法...

热门文章

  1. 用python自动制作ppt——第四讲——插入图片
  2. Linux 命令(2)—— C++filt 命令
  3. pandas 选择数据与条件筛选iloc/loc/filt
  4. C++ atuo关键字看这一篇就够了
  5. java免安装_【JAVA环境配置免安装】如何由jdk的安装版本改成非安装版本
  6. 家庭WIFI路由器当交换机用
  7. 简述人工智能的发展历程图_人工智能的历程、现状及未来发展趋势
  8. hdu多校(三)1004 Tokitsukaze and Multiple(easydp)
  9. matlab 向量的基本运算
  10. Numpy中的向量运算