Axios 原來自帶了生成 mock 數據的功能?
平時在開發的時候,由于后端的接口暫時還沒開發完成,所以我們前端需要自己去 mock 數據。
最近發現了 axios 的一個 mock 工具,叫 axios-mock-adapter,這是一個 axios 的 mock 適配器,能讓你在使用 axios 的時候,為你生成一些 mock 數據,使用起來也很簡單。
首先我們需要安裝這個插件:
npm install axios-mock-adapter --save-dev
如果你想直接引入的話,可以用這個兩個地址:
- https://unpkg.com/axios-mock-adapter/dist/axios-mock-adapter.js
- https://unpkg.com/axios-mock-adapter/dist/axios-mock-adapter.min.js
這個插件可以運行在 nodejs 環境,也可以運行在瀏覽器端。
模擬一個 GET 請求
加入我們想 mock 一個 GET /user,請求,我們可以使用 axios-mock-adapter 的 reply 方法
這樣我們使用默認 axios 實例去請求 GET /user 的時候就可以拿到 mock 數據:
模擬 GET 帶特定參數的請求
當然你也可以根據特定傳入參數,去返回相應的 mock 數據:
這樣我們傳入特定參數的時候,才會返回特定的 mock 數據:
模擬請求延遲
如果你想模擬請求延遲的話,可以在在生成適配器實例的時候傳入 delayResponse:
模擬網絡錯誤
我們可以用它來模擬請求網絡錯誤:
模擬網絡超時
我們也可以使用它來模擬請求網絡超時:
傳入一個函數
我們可以給 reply 傳入一個函數,這樣也能靈活根據配置去決定返回什么 mock 數據:
模擬重定向
也可以使用他來進行模擬重定向,返回一個新的請求,就相當于重定向:
正則匹配 url
可以使用正則表達式對于 url 進行匹配:
小結
更多高級的用法可以去到使用文檔中查看:https://www.npmjs.com/package/axios-mock-adapter