在組合式 Vue3 中使用 useRoute
P粉937382230
P粉937382230 2023-11-22 23:48:09
0
1
837

我有一個檔案 store/service.js,我想使用路由器。

我做這個:

import { useRoute } from 'vue-router';
const router = useRoute();
function exceptionHandler(error) {
  if (error.response.status === 401) {
    router.push('/user/login');
  } else if (error.response.status === 404) {
    throw new Error(error.response.data.Message || error.message);
  } else {
    router.push('/error');
  }
}

但在路由器使用中收到未定義錯誤。

注意:這不是setup標籤內的,這是一個js外部檔案

P粉937382230
P粉937382230

全部回覆(1)
P粉982054449

useRoute() 只能在設定內部使用,因此請嘗試將函數編寫為像這樣的可組合項目

import { useRoute } from 'vue-router';

export function useExceptionHandler(){

const router = useRoute();

function exceptionHandler(error) {
  if (error.response.status === 401) {
    router.push('/user/login');
  } else if (error.response.status === 404) {
    throw new Error(error.response.data.Message || error.message);
  } else {
    router.push('/error');
  }
}
    return {
        exceptionHandler,
    }
}

你可以在你的元件上像這樣使用它

<script setup>

const { exceptionHandler } = useExceptionHandler();

</script>
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板