溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Vue項目中使用mock.js

發(fā)布時間:2022-01-27 09:35:32 來源:億速云 閱讀:153 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“怎么在Vue項目中使用mock.js”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么在Vue項目中使用mock.js”吧!

在Vue項目中使用mock.js

  • 開發(fā)工具選擇:Vscode

1. 使用命令行創(chuàng)建 vue 項目(手動選擇 Babel,Router,Vuex)

2. 導(dǎo)入 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"
   >
   <el-table-column
     label="日期"
     width="180">
     <template slot-scope="scope">
       <i class="el-icon-time"></i>
       <span >{{ 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: '上海市普陀區(qū)金沙江路 1518 弄'
       }, {
         date: '2016-05-04',
         name: '王小虎',
         address: '上海市普陀區(qū)金沙江路 1517 弄'
       }, {
         date: '2016-05-01',
         name: '王小虎',
         address: '上海市普陀區(qū)金沙江路 1519 弄'
       }, {
         date: '2016-05-03',
         name: '王小虎',
         address: '上海市普陀區(qū)金沙江路 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'
//導(dǎo)入組件
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

現(xiàn)在的網(wǎng)頁顯示效果如下

怎么在Vue項目中使用mock.js

5. 安裝 mockjs 和 axios

npm install --save-dev mockjs
npm install --save axios
12

6.新建 api/getData.js 和 request.js

  • request.js

import axios from 'axios'
const service = axios.create({
   baseURL : "http://localhost:8080",
})
export default service
12345
  • getData.js

import axios from '../request'
//數(shù)據(jù)列表接口
export const getList = () => axios.get("/list")
123

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',//創(chuàng)建時間
               avatar() {
                   //用戶頭像
                   return Mock.Random.image('100×100', Mock.Random.color(), '#757575', 'png', this.nickName)
               }
           }
       ]
   }

})

8.在 main.js 中導(dǎo)入 mockServer

import './mock/mockServer'

9.修改 src/views/main/List.vue(數(shù)據(jù)獲取與綁定,設(shè)置表格居中)

<template>
 <div>
   <el-table :data="tableData" >
     <el-table-column label="隨機ID" width="200">
       <template slot-scope="scope">
         <i class="el-icon-time"></i>
         <span >{{ 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: "上海市普陀區(qū)金沙江路 1518 弄",
       //   },
       //   {
       //     date: "2016-05-04",
       //     name: "王小虎",
       //     address: "上海市普陀區(qū)金沙江路 1517 弄",
       //   },
       //   {
       //     date: "2016-05-01",
       //     name: "王小虎",
       //     address: "上海市普陀區(qū)金沙江路 1519 弄",
       //   },
       //   {
       //     date: "2016-05-03",
       //     name: "王小虎",
       //     address: "上海市普陀區(qū)金沙江路 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>

感謝各位的閱讀,以上就是“怎么在Vue項目中使用mock.js”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么在Vue項目中使用mock.js這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI