在Vue项目中使用mock.js
- 开发工具选择:Vscode
1. 使用命令行创建vue项目(手动选择Babel,Router,Vuex)
2. 导入element-ui(为了显示效果好一点),命令行输入
npm i element-ui -S
3.在main。js中进行引用
import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css';//样式文件一定要引入 Vue.use(ElementUI)
4.新建src/views/main/List.vue使用elememnt-ui中的自定义列模板
<template> <div> <el-table :data="tableData" style="width: 100%"> <el-table-column label="日期" width="180"> <template slot-scope="scope"> <i class="el-icon-time"></i> <span style="margin-left: 10px">{{ scope.row.date }}</span> </template> </el-table-column> <el-table-column label="姓名" width="180"> <template slot-scope="scope"> <el-popover trigger="hover" placement="top"> <p>姓名: {{ scope.row.name }}</p> <p>住址: {{ scope.row.address }}</p> <div slot="reference" class="name-wrapper"> <el-tag size="medium">{{ scope.row.name }}</el-tag> </div> </el-popover> </template> </el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> <el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button> </template> </el-table-column> </el-table> </div> </template> <script> export default { data() { return { tableData: [{ date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-04', name: '王小虎', address: '上海市普陀区金沙江路 1517 弄' }, { date: '2016-05-01', name: '王小虎', address: '上海市普陀区金沙江路 1519 弄' }, { date: '2016-05-03', name: '王小虎', address: '上海市普陀区金沙江路 1516 弄' }] } }, methods: { handleEdit(index, row) { console.log(index, row); }, handleDelete(index, row) { console.log(index, row); } } } </script>
5.router/index.js配置如下
import Vue from 'vue' import VueRouter from 'vue-router' //导入组件 import List from '../views/main/List.vue' Vue.use(VueRouter) const routes = [ { path: '/', name: 'List', component: List }, ] const router = new VueRouter({ routes }) export default router
现在的网页显示效果如下
5. 安装mockjs 和axios
npm install --save-dev mockjs npm install --save axios
6.新建api/getData.js和request.js
request.js
import axios from 'axios' const service = axios.create({ baseURL : "http://localhost:8080", }) export default service
getData.js
import axios from '../request' //数据列表接口 export const getList = () => axios.get("/list")
7.在src下新建mock/mockServer.js
import Mock from 'mockjs' //import data from './data.json' Mock.mock('http://localhost:8080/list', { code: 0, data: { 'data|1000': [ { id: '@id',//随机id name: '@name',//随机名称 nickName: '@last',//随机昵称 phone: /^1[34578]\d{9}$/,//随机电话号码 'age|11-99': 1,//年龄 address: '@county(true)',//随机地址 email: '@email',//随机邮箱 isMale: '@boolean',//随机性别 createTime: '@datetime',//创建时间 avatar() { //用户头像 return Mock.Random.image('100×100', Mock.Random.color(), '#757575', 'png', this.nickName) } } ] } })
8.在main.js中导入mockServer
import './mock/mockServer'
9.修改src/views/main/List.vue(数据获取与绑定,设置表格居中)
<template> <div> <el-table :data="tableData" style="width: 600px;margin: 0 auto"> <el-table-column label="随机ID" width="200"> <template slot-scope="scope"> <i class="el-icon-time"></i> <span style="margin-left: 10px">{{ scope.row.id }}</span> </template> </el-table-column> <el-table-column label="姓名" width="180"> <template slot-scope="scope"> <el-popover trigger="hover" placement="top"> <p>姓名: {{ scope.row.name }}</p> <p>住址: {{ scope.row.address }}</p> <div slot="reference" class="name-wrapper"> <el-tag size="medium">{{ scope.row.name }}</el-tag> </div> <p>邮箱: {{ scope.row.email }}</p> <p>性别: {{ scope.row.isMale }}</p> <p>昵称: {{ scope.row.nickName }}</p> <p>手机号: {{ scope.row.phone }}</p> <p>头像:</p> </el-popover> </template> </el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button size="mini" @click="handleEdit(scope.$index, scope.row)" >编辑</el-button > <el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)" >删除</el-button > </template> </el-table-column> </el-table> </div> </template> <script> import { getList } from "../../api/getData"; export default { data() { return { tableData: [ // { // date: "2016-05-02", // name: "王小虎", // address: "上海市普陀区金沙江路 1518 弄", // }, // { // date: "2016-05-04", // name: "王小虎", // address: "上海市普陀区金沙江路 1517 弄", // }, // { // date: "2016-05-01", // name: "王小虎", // address: "上海市普陀区金沙江路 1519 弄", // }, // { // date: "2016-05-03", // name: "王小虎", // address: "上海市普陀区金沙江路 1516 弄", // }, ], }; }, methods: { handleEdit(index, row) { console.log(index, row); }, handleDelete(index, row) { console.log(index, row); }, async getMockList() { try { const result = await getList(); //console.log(result); if (result.data.code == 0) { this.tableData = result.data.data.data; } //console.log(result.data.data.data); } catch (error) { console.log(error); } }, }, mounted() { this.getMockList(); }, }; </script>
10.再次运行
鼠标放在姓名上,会有更多信息显示
显示测试的数据1000条
分页就懒得做了。。。。
总结
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月15日
2024年11月15日
- 黄乙玲1988-无稳定的爱心肝乱糟糟[日本东芝1M版][WAV+CUE]
- 群星《我们的歌第六季 第3期》[320K/MP3][70.68MB]
- 群星《我们的歌第六季 第3期》[FLAC/分轨][369.48MB]
- 群星《燃!沙排少女 影视原声带》[320K/MP3][175.61MB]
- 乱斗海盗瞎6胜卡组推荐一览 深暗领域乱斗海盗瞎卡组分享
- 炉石传说乱斗6胜卡组分享一览 深暗领域乱斗6胜卡组代码推荐
- 炉石传说乱斗本周卡组合集 乱斗模式卡组最新推荐
- 佟妍.2015-七窍玲珑心【万马旦】【WAV+CUE】
- 叶振棠陈晓慧.1986-龙的心·俘虏你(2006复黑限量版)【永恒】【WAV+CUE】
- 陈慧琳.1998-爱我不爱(国)【福茂】【WAV+CUE】
- 咪咕快游豪礼放送,百元京东卡、海量欢乐豆就在咪咕咪粉节!
- 双11百吋大屏焕新“热”,海信AI画质电视成最大赢家
- 海信电视E8N Ultra:真正的百吋,不止是大!
- 曾庆瑜1990-曾庆瑜历年精选[派森][WAV+CUE]
- 叶玉卿1999-深情之选[飞图][WAV+CUE]