溫馨提示×

溫馨提示×

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

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

vue本地模擬服務器怎么請求mock數(shù)據(jù)

發(fā)布時間:2022-03-19 16:12:31 來源:億速云 閱讀:249 作者:iii 欄目:開發(fā)技術

本篇內(nèi)容介紹了“vue本地模擬服務器怎么請求mock數(shù)據(jù)”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

    原因

    • 1、mockjs本地開發(fā)的時候用還好,mock數(shù)據(jù)需要生產(chǎn)時候用就不大行了

    • 2、mock的數(shù)據(jù)通過module.exports、export實現(xiàn)的時候,npm run build 生產(chǎn)打包的時候,這些假數(shù)據(jù)會打包進app.js文件里面,導致文件大、首屏渲染慢;而且,在js文件里面mock的數(shù)據(jù)量超過webpack限制的時候,打包會失敗

    • 3、遠程mock數(shù)據(jù)的就不需要了。像 YApi、網(wǎng)易NEI

    場景

    • 1、做演示項目的時候,數(shù)據(jù)需要完全本地化實現(xiàn)

    • 2、做演示項目的時候,要求數(shù)據(jù)可供業(yè)務人員修改

    • 3、mock數(shù)據(jù)量1w+的時候(因為項目用到的數(shù)據(jù)有6w+,十幾M的文件,需要用到此方法了)

    • 4、做的項目,需要前端人員先定義接口數(shù)據(jù),后臺人員配合傳。這時候定義好的數(shù)據(jù)格式直接扔給后臺人員就行了,特別是一些“查”,沒有“增刪改”的項目,前端寫好后,基本不需要怎么修改了,挺方便的。

    • 5、基于vue2 cli3項目

    方法

    vue cli3 的項目,打生產(chǎn)包的時候,public文件夾里面的文件,是不經(jīng)webpack編譯,直接復制到 publicPath設置的目錄下的,開發(fā)時用到的json數(shù)據(jù)、圖片等資源文件,可以放到 public目錄里面。

    mock資源

    如下,準備了一張圖片和一個json文件

    table.json, cat.png

    |-- src
    |-- public
        |-- data
            |-- table.json
        |-- images
            |-- cat.png

    配置

    涉及的文件如下(具體參考代碼):

    |-- src
        |-- .env.development    // 開發(fā)環(huán)境配置,主要是配置服務器地址
        |-- .env.production        // 生產(chǎn)環(huán)境配置,主要是配置服務器地址
        |-- settings.js    // 一些全局配置,把publicPath的值設置在這里
        |-- utils
            |-- mock-request.js    // axios請求封裝
        |-- api
            |-- table.js    // 獲取table.json數(shù)據(jù)的請求封裝
        |-- views
            |-- mockDataTest    // 用來顯示請求結果
                |-- index.vue
                |-- index.scss
                |-- index.js
    |-- public
        |-- data
            |-- table.json
        |-- images
            |-- cat.png
    |-- vue.config.js

    vue.config.js + settings.js

    先配置下訪問公共路徑,例如,想在訪問的時候地址加上dist路徑,可以在vue.config.js如下配置

    module.exports = {
      publicPath: process.env.NODE_ENV === 'production' ? '/' : '/dist',
    }

    為方便調(diào)用,記得這里要和settings.js里面的publicPath同步修改。

    .env.development + .env.production

    這里主要是配置下部署的服務器的地址,例如,開發(fā)時,本地訪問的地址是http://localhost:8081 定義一個參數(shù),存放此地址,名字隨意

    VUE_APP_MOCK_URL = 'http://localhost:8081/'

    mock-request.js

    這里主要是配置下axios的baseURL,直接讀取.env.development or .env.production里面配置的服務器地址就行,例如,

    baseURL: process.env.VUE_APP_MOCK_URL

    這里會自動根據(jù)命令,讀取不同環(huán)境配置的服務器地址

    table.js

    這里是服務器請求相關的,.json文件的數(shù)據(jù)怎么請求獲取,如下所示

    import mrequest from '@/utils/mock-request'
    import defaultSettings from '@/settings'
    const { publicPath } = defaultSettings
    
    export const tableData = () => {
      return mrequest({
        url: publicPath + `/data/table.json`,
        method: 'get'
      })
    }

    mockDataTest

    這里主要是演示效果

    • 1、調(diào)用接口,在界面上顯示table.json的數(shù)據(jù)

    • 2、顯示放的圖片(也可以是其他資源,例如音樂、視頻)

    效果如下

    vue本地模擬服務器怎么請求mock數(shù)據(jù)

    “vue本地模擬服務器怎么請求mock數(shù)據(jù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

    向AI問一下細節(jié)

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

    AI