:::
14-7-2 整合現有的nuxt套件 plugin
- 先安裝一個外部套件
npm install @nuxtjs/axios - 將外部套件加入設定檔nuxt.config.js
modules: ['@nuxtjs/axios'], - 然就可以直接用外部套件了。
async asyncData({$hello, $axios}) { $hello('我在後端被asyncData了') const res =await $axios.get('http://blog.lces.tn.edu.tw/api.php?op=index') return {res: res.data.data} }, - 若是axios無法取得資料,可以用 try{}.catch(){} 方式來呈現錯誤,但一旦用到axios的地方很多,這樣會顯得麻煩,所以,可以做一個 plugin來處理。
- 先建立 plugins/axios.js
export default function ({ $axios, redirect }) { $axios.onError(error => { if (error.response.status === 500) { console.log('500'); redirect('/500') } if(error.response.status === 404) { console.log('404'); redirect('/404') } }) } - 加入設定檔nuxt.config.js
plugins: ["~/plugins/hello.js", "~/plugins/axios.js"], - 如此當api傳回404或500時就會自動導向到 page/404.vue或500.vue(要自己做)
<script> export default { }; </script> <template> <h1>404 咩有~</h1> </template> <style lang="scss" scoped> </style>
14-7-1 注入 plugin