我正在嘗試實作一個小型的Vue3型別的應用程式,作為一個培訓練習。我正在取得相當大的進展,但遇到了一個障礙。希望比我更了解的人能夠提供一些建議。
我一直在使用 firebase 設定授權,并正在實施路由防護。這些都是有效的,除了用戶直接在地址欄中輸入新路線的情況。在這種情況下,它似乎在獲得有關回圈用戶的資訊之前就重新創建了應用程式。因此,它認為用戶是空的,并顯示了登錄頁面。因此,我被建議執行以下內容。
main.ts
import App from ' ./App.vue' /span>
import { createApp, App as Application } from 'vue'
import router from ' ./router'
import { projectAuth } from ' ./firebase/config'
import { onAuthStateChanged } 來自 'firebase/auth'
let app: 應用 app: 應用
onAuthStateChanged(projectAuth, () => {
if (!app) {
app = createApp(App) // type error on 'app'
.use(router)
.mount('#app')
}
})
它可以作為一個純粹的Javascript實作,但在typescript中拋出一個型別錯誤。
我如何在上述代碼中定義app的型別?
我已經嘗試了幾種變化,都沒有效果,包括:
我已經嘗試了幾種變化,都沒有效果。
let app: typeof App: app: typeof App
let app: App<Element>
let app: typeof Application.
我想這是很簡單的事情,但作為一個型別化的新手,我無法理解。
uj5u.com熱心網友回復:
從vue匯入App型別,重命名為類似Application的東西,以避免與你的App組件重疊,然后用App型別注釋你的App:
import { createApp, App as Application } from 'vue'
let app: Application。
onAuthStateChanged(projectAuth, () => {
if (!app) {
app = createApp(App).use(router)
app.mount('#app') //在createApp之后不要連鎖mount。
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/324502.html
標籤:
