之前也看了vuex的文档,对它的原理只是了解,看代码(仅自己复习、做笔记)

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

state   //date

mutations   //computed

actions   //methods

mock.js文件   模拟user列表

/*user列表*/
Mock.mock('/api/getUserInfo','post', {
"data|10-20": [
{
"_id": /\d{9}/,
"date": Random.date('yyyy-MM-dd'),
"name": "@cname",
"address": Random.city(true),
"sex|1": [
"男",
"女"
]
}
]
})

目录结构:

fetch /api.js主要是请求数据的,这个可以看情况而定,我觉得是多余了,暂时还没有更改

用的vuex的模块化处理,这样感觉高效,适用与大型项目,这里就不一一陈述用法,就是简单的配置,然后将文件导出放在index.js文件里(出口文件?)

fetch/api.js

import axios from 'axios'

export function fetch(url,params) {
return new Promise((resolve, reject) => {
axios.post(url, params)
.then(res => {
console.log('api---ok');
console.log(res.data)
resolve(res.data)
})
.catch((error) => {
console.log(error)
reject(error)
})
})
}
export default {
getList() {
console.log('进入api.js')
return fetch('/getUserInfo') //这是我user的mock模拟的接口
}
}

userList.js

import api from './../../fetch/api'
const userList = {
state: {
userListData: [],
},
mutations: {
SET_DATELIST:(state,res) => {
console.log('进入mutations');
console.log(res)
state.userListData = res.data
console.log(state.userListData)
},
},
actions: {
getList({ commit, state }){
console.log('进入action');
api.getList().then(res =>{
console.log('axios中调用封装后的axios成功');
commit('SET_DATELIST', res)
})
}
},
getters: {}
}; export default userList

然后再页面中使用,这里我用了...Map

<template>
<el-table :data="userListData" height="450" border style="width: 100%">
<el-table-column prop="_id" label="id" width="180"></el-table-column>
<el-table-column prop="date" label="注册日期" width="180"></el-table-column>
<el-table-column prop="name" label="用户姓名" width="180"></el-table-column>
<el-table-column prop="sex" label="性别" width="180"></el-table-column>
<el-table-column prop="address" label="注册地址"></el-table-column>
</el-table>
</template> <script>
import { mapState, mapActions } from 'vuex';
export default {
name: 'userList',
data() {
return {
// userListData: []
}
},
// methods:{
// getList(){
// this.$axios.post('/getUserInfo').then( res => {
// console.log(res);
// this.userListData = res.data
// })
// }
// },
// created: function () {
// this. getList();
// }
created() {
this.$store.dispatch('getList'); //提交siapatch
},
computed: {
...mapState({
userListData: state => state.userList.userListData /*从vuex中获取到数据*/
})
}
}
</script> <style scoped>
.el-row{
margin:20px auto;
}
</style>

然后就可以在页面展示了,这里写这个的目的是想让自己加深对vuex触发的流程更加熟悉,里面有很多打印,可以加深理解。

vuex存取数据展示在table里-----第一次实现的更多相关文章

  1. bootstrap table通过ajax获取后台数据展示在table

    1. 背景 bootstrap table 默认向后台发送语法的dataType为 json,但是为了解决跨域问题我们需要将dataType改为jsonp,这时就需要修改bootstrap table ...

  2. 为什么Vuex内数据改变了而组件没有进行更新?

    这两天在进行一个首页的制作,结果就碰到了标题上所述的问题了,用了一天的时间在网上查资料.终于找出了问题所在 Vuex的数据写在store里,在组件中需要用到this.$store.commit() 来 ...

  3. 使用C#或javascript将Table里的数据导出到Excel

    原文:使用C#或javascript将Table里的数据导出到Excel Demo效果图: 用C#将Table数据导出Excel: 本方法已经将导出excel做成分部视图,引用时只需在视图中使用如下代 ...

  4. django学习-27.admin管理后台里:对列表展示页面的数据展示进行相关优化

    目录结构 1.前言 2.完整的操作步骤 2.1.第一步:查看ModelAdmin类和BaseModelAdmin类的源码 2.2.第二步:查看表animal对应的列表展示页面默认的数据展示 2.3.第 ...

  5. LigerUI之Grid使用详解(三)——字典数据展示

    一.问题概述 在开发web信息管理系统时,使用Web前端框架可以帮助我们快速搭建一组风格统一的界面效果,而且能够解决大多数浏览器兼容问题,提升开发效率.在关于LigerGrid的前两篇的内容里,给大家 ...

  6. 手把手教你写带登录的NodeJS爬虫+数据展示

    其实在早之前,就做过立马理财的销售额统计,只不过是用前端js写的,需要在首页的console调试面板里粘贴一段代码执行,点击这里.主要是通过定时爬取https://www.lmlc.com/s/web ...

  7. hugegraph 数据存取数据解析

    hugegraph 是百度开源的图数据库,支持hbase,mysql,rocksdb等作为存储后端.本文以EDGE 存储,hbase为存储后端,来探索是如何hugegraph是如何存取数据的. 存数据 ...

  8. EasyUI-datagrid数据展示+MongoDB数据操作

    使用EasyUI-datagrid进行数据展示:进行添加,修改,删除操作逻辑代码,数据源来自MongoDB. 一.新建SiteInfo控制器,添加Index页面:http://www.cnblogs. ...

  9. 【助教】Java获取数据库数据展示

    本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...

随机推荐

  1. poj 1845 Sumdiv (等比求和+逆元)

    题目链接:http://poj.org/problem?id=1845 题目大意:给出两个自然数a,b,求a^b的所有自然数因子的和模上9901 (0 <= a,b <= 50000000 ...

  2. 莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记

    最近重新系统地学了下这几个知识点,以前没发现他们的联系,这次总结一下. 莫比乌斯反演入门:https://blog.csdn.net/litble/article/details/72804050 线 ...

  3. Install packages failed: Installing packages: error occurred. ------简单的问题常常会被忽略

    用 pip install 安装了wxpy这个库,但是使用的时候却报错:ImportError: No module named wxpy 我先用 pip list 查看了一下,发现这个库是已经存在的 ...

  4. 终极解决方案: Invalid character found in the request target.

    终极解决方案:(导出可能出现) 我的tomcat版本是8.5.32,导出时遇到以下报错. 报错日志: Invalid character found in the request target. Th ...

  5. 【leetcode】714. Best Time to Buy and Sell Stock with Transaction Fee

    题目如下: Your are given an array of integers prices, for which the i-th element is the price of a given ...

  6. Vue学习笔记-插槽基本使用

    为了让我们的组件更加具有扩展性,可以使用插槽 <div id="app"> <cpn> <span>返回</span> <in ...

  7. 趣头条基于 Flink 的实时平台建设实践

    本文由趣头条实时平台负责人席建刚分享趣头条实时平台的建设,整理者叶里君.文章将从平台的架构.Flink 现状,Flink 应用以及未来计划四部分分享. 一.平台架构 1.Flink 应用时间线 首先是 ...

  8. php str_pad()函数 语法

    php str_pad()函数 语法 str_pad()函数怎么用? php str_pad()函数用于把字符串填充到指定长度,语法是str_pad(string,length,pad_string, ...

  9. PHP curl_getinfo函数

    curl_getinfo — 获取一个cURL连接资源句柄的信息 说明 mixed curl_getinfo ( resource $ch [, int $opt = 0 ] ) 获取最后一次传输的相 ...

  10. t时间同步服务设置

    中国国家授时中心的时间服务器IP地址及时间同步方法 大家都知道计算机电脑的时间是由一块电池供电保持的,而且准确度比较差经常出现走时不准的时候.通过互联网络上发布的一些公用网络时间服务器NTPserve ...