主页 > 开源代码  > 

vue中json-server及mockjs后端接口模拟

vue中json-server及mockjs后端接口模拟
一、接口配置

1.安装json-server;

pnpm i json-server@0.17.3 -D

2.安装mockjs;

pnpm i mockjs -D

3.把json数据放在合适的位置,在根目录下创建mock.js文件,引入json数据;

4.在package.json中添加

"mock": "json-server -w mock.js -p 3000"

删除

"type": "module",

 5.启动服务;

pnpm mock

 二、axios请求数据

 1.安装axios;

pnpm i axios

2.在src文件夹下创建api文件夹,创建接口文件index.js,封装接口;

3.使用数据

<script setup> import { getWuhanBuildings,getWuhanRoads } from '@/api'; import { inject,onMounted, onBeforeUnmount} from 'vue' const {map,scene} = inject('mapScene') onMounted(async() => { map.flyTo({ center: [114.299987, 30.58518], zoom: 15, pitch:45, }) //加载城市建筑和道路数据 const { data: buildingsData } = await getWuhanBuildings(); const { data: roadsData } = await getWuhanRoads(); console.log(buildingsData,roadsData) }) onBeforeUnmount(() => {}) </script> <template> <div></div> </template> <script setup> import { getWuhanBuildings, getWuhanRoads } from '@/api' import { inject, onMounted, onBeforeUnmount } from 'vue' import { CityBuildingLayer, LineLayer, LayerSwitch } from '@antv/l7' const { map, scene } = inject('mapScene') let buildingsLayer, roadsLayer, layerSwitch onMounted(async () => { map.flyTo({ center: [114.299987, 30.58518], zoom: 15, pitch: 45, }) //加载城市建筑和道路数据 const { data: buildingsData } = await getWuhanBuildings() const { data: roadsData } = await getWuhanRoads() //console.log(buildingsData,roadsData) buildingsLayer = new CityBuildingLayer({ name: '建筑', }) buildingsLayer .source(buildingsData) .size('Elevation', (e) => { return e }) .filter('Elevation', (e) => { return e > 50 }) .color('rgb(240,240,240)') .animate(true) .active(true) .style({ opacity: 0.7, baseColor: 'rgb(16, 16, 16)', windowColor: 'rgb(30, 60, 89)', brightColor: 'rgb(255, 176, 38)', sweep: { enable: true, sweepRadius: 2, sweepColor: '#1990FF', sweepSpeed: 0.5, sweepCenter: [114.406325, 30.465113], }, }) scene.addLayer(buildingsLayer) //加载道路数据 roadsLayer = new LineLayer({ name: '道路', }) roadsLayer .source(roadsData) .shape('line') .color('type', (type) => { switch (type) { case 'motorway': return '#F9D371' case 'motorway_link': return '#3DB2FF' case 'trunk': return 'green' case 'trunk_link': return '#6E85B2' case 'primary': return '#F47340' case 'primary_link': return '#F6A9A9' case 'secondary': return '#EF2F88' case 'secondary_link': return '#5F7A61' case 'tertiary': return '#1ee3cf' case 'tertiary_link': return '#C2F784' case 'pedestrian': return '#FFF89A' case 'residential': return 'rgba(22, 119, 255, .5)' case 'road': return '#93FFD8' case 'path': return '#BAFFB4' case 'unclassified': return '#D3DEDC' case 'service': return '#AEFEFF' case 'living_street': return '#9B0000' case 'track': return '#F5F5F5' case 'highway': return 'red' case 'rail': return '#08ffc8' default: return '#FFE3E3' } }) .active(true) .size(1) .style({ opacity: 0.5, }) .animate({ interval: 1, // 间隔 duration: 1, // 持续时间,延时 trailLength: 2, // 流线长度 }) scene.addLayer(roadsLayer) layerSwitch = new LayerSwitch({ layers: [buildingsLayer, roadsLayer], }) scene.addControl(layerSwitch) }) onBeforeUnmount(() => { scene.removeLayer(buildingsLayer) scene.removeLayer(roadsLayer) scene.removeControl(layerSwitch) }) </script> <style scoped></style>

标签:

vue中json-server及mockjs后端接口模拟由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“vue中json-server及mockjs后端接口模拟