vue+vuex+json-seiver实现数据展示+分页功能


Posted in Javascript onApril 11, 2019

一丶项目分析

1.UI:

vue+vuex+json-seiver实现数据展示+分页功能

2.接口信息:

vue+vuex+json-seiver实现数据展示+分页功能

二丶项目环境

  • Mockjs:生成模拟数据(含中文名,以及地址)
  • json-server:模拟后端接口
  • webpack-dev-server:开启服务器环境+接口代理
  • jquery:使用jquery的ajax拉取数据
  • vue+vuex:vuex负责数据交互,vue渲染页面
  • iviewui:ui组件,方便布局

搭建开发环境

1.基本环境

  • 安装: npm install --save Mockjs
  • 使用:

详细API:mockjs.com

mock.js
var Mock = require('mockjs')
var fs =require('fs')
var Random = Mock.Random
//保存数据
var arr=[]
//动态生成4W条数据
for(let i=1;i<40000;i++){
 //生成随机项
 let name=Random.cname();
 let age=Mock.mock({"age|1-100": 100 }).age
 let home=Random.province();
 let sex=Random.pick(["男","女"]);
 let education=Random.pick(["初中","高中","专科","本科"]);
 arr.push({"id":i,name,age,home,sex,education})
}
//写入文件
fs.writeFile("db.json", JSON.stringify( {"student": arr}),function(){
 console.log("done")
})

node mock.js 即可生成db.json模拟数据文件

安装: npm install -g json-server

使用:在有db.json(模拟数据的文件夹)下 json-server --watch db.json , 即可在127.0.0.1:3000下看到模拟数据.

vue+vuex+json-seiver实现数据展示+分页功能

4.接口代理

原因:由于我们的页面在8080端口运行,不能跨域访问3000端口的数据信息.所以需要使用webpack-dev-server进行跨域代理.

webpack-config.js文件下添加如下代码:

devServer: {
  proxy: {
   '/api': {
   target: 'http://localhost:3000',
   pathRewrite: {'^/api' : ''}
   }
  }
  }

启动webpack-dev-server npm run dev ,即可在8080端口的api虚拟路径下(127.0.0.1:8080/api/student)看到3000端口的40000条数据了.

vue+vuex+json-seiver实现数据展示+分页功能

5.引入jquery

在index.html中引入jquery

6.Vuex安装,配置

目的:vuex(状态管理器),用于存储管理组件的状态(与UI交互),并与后端进行数据交互

安装: npm install --save vuex

配置:

  • 创建store仓库文件夹,并创建index.js主文件和info.js存储信息的文件
  • index.js文件负责暴露所有store库文件(例如:info.js)
  • info.js文件负责拉取后端数据,以及记录UI组件信息.
//info.js
 export default{
 //命名空间
 namespaced:true,
 //状态管理
 state:{
  arr:[]
 },
 //无副作用方法,唯一用于改变state的地方
 mutations:{
  changeArr(state,{arr}){
   state.arr=arr;
  }
 },
 //副作用方法,用于进行逻辑判断,以及拉取数据
 actions:{
  loadInfo({commit}){
   $.get("/api/student?_limit=10",function(data,statu,xhr){
    commit("changeArr",{arr:data})
   })
  }
 }
}
//index.js
import info from "./info"
export default{
 modules:{
  info
 }
}

在main.js入口文件下引入并使用vuex

//main.js原有基础上中加入如下代码
import Vuex from "vuex";
import store from "./store/index";
Vue.use(Vuex)
new Vue({
 el:"#app",
 render(h){
  return h(App)
 },
 //将store注册到prototype上
 store: new Vuex.Store(store)
})

现在vuex就基本配好了.我们可以在Vue组件上看一下vuex是否配置成功.

//app.vue组件
<template>
 <div>
 //获取Vuex中的数据
  {{$store.state.info.arr}}
 </div>
</template>
<script>
 export default {
  //组件创建时调用loadInfo方法拉取数据
   created(){
  this.$store.dispatch("info/loadInfo")
  } 
 }
</script>

现在就可以打开127.0.0.1:8080页面查看vuex是否完成了

vue+vuex+json-seiver实现数据展示+分页功能

7.iviewui

目的:iview可以有效减少我们花在布局上的精力.

安装: npm install --save iview

配置:

在index.html中引入node_modules\iview\dist\styles\iview.css样式表

<link rel="stylesheet" href="./node_modules/iview/dist/styles/iview.css" rel="external nofollow" >

在入口文件main.js中引用iview组件,并使用

import iview from "iview"; Vue.use(iview)

现在就可以了

以上就是项目的所有配置

以上所述是小编给大家介绍的vue+vuex+json-seiver实现数据展示+分页功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

如果你觉得本文对你有帮助,欢迎转载,请注明出处,谢谢!

Javascript 相关文章推荐
JS 字符串连接[性能比较]
May 10 Javascript
js 与或运算符 || &amp;&amp; 妙用
Dec 09 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
May 07 Javascript
html的DOM中Event对象onabort事件用法实例
Jan 21 Javascript
jQuery插件jPaginate实现无刷新分页
May 04 Javascript
js小数计算小数点后显示多位小数的实现方法
May 30 Javascript
react高阶组件经典应用之权限控制详解
Sep 07 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
Webpack path与publicPath的区别详解
May 03 Javascript
在layui.use 中自定义 function 的正确方法
Sep 16 Javascript
Vue路由对象属性 .meta $route.matched详解
Nov 04 Javascript
原生js实现表格翻页和跳转
Sep 29 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
Apr 10 #Javascript
微信小程序 wepy框架与iview-weapp的用法详解
Apr 10 #Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 #jQuery
详解Vue源码学习之双向绑定
Apr 10 #Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
Apr 10 #Javascript
详解关于html,css,js三者的加载顺序问题
Apr 10 #Javascript
angular2 NgModel模块的具体使用方法
Apr 10 #Javascript
You might like
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
php生成mysql的数据字典
2016/07/07 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
基于jquery封装的一个js分页
2011/11/15 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
from 表单提交返回值用post或者是get方法实现
2013/08/21 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
python 七种邮件内容发送方法实例
2014/04/22 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
Python实现进程同步和通信的方法
2018/01/02 Python
对python list 遍历删除的正确方法详解
2018/06/29 Python
对python 中re.sub,replace(),strip()的区别详解
2019/07/22 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
企业军训感言
2014/02/08 职场文书
元旦晚会活动总结
2014/07/09 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
先进班集体申报材料
2014/12/26 职场文书
地雷战观后感
2015/06/09 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技