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 相关文章推荐
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
May 30 Javascript
Jquery实现弹出层分享微博插件具备动画效果
Apr 03 Javascript
Knockout visible绑定使用方法
Nov 15 Javascript
Angularjs中如何使用filterFilter函数过滤
Feb 06 Javascript
JavaScript tab选项卡插件实例代码
Feb 23 Javascript
实例讲解JavaScript中的this指向错误解决方法
Jun 13 Javascript
JS 中LocalStorage和SessionStorage的使用
Aug 17 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
webstorm中vue语法的支持详解
May 09 Javascript
JavaScript常用数学函数用法示例
May 14 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
详解a标签添加onclick事件的几种方式
Mar 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分页显示制作详细讲解
2006/12/05 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
TP3.2.3框架文件上传操作实例详解
2020/01/23 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
深入理解Vue 组件之间传值
2018/08/16 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
Python获取当前函数名称方法实例分享
2018/01/18 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
python os.rename实例用法详解
2020/12/06 Python
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
职业生涯规划怎么写
2013/12/29 职场文书
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
军训考核自我鉴定
2014/02/13 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
教师节感想
2015/08/11 职场文书
Java8中Stream的一些神操作
2021/11/02 Java/Android
MySQL普通表如何转换成分区表
2022/05/30 MySQL