成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

注意避坑,Vue Router 4: 路由參數(shù)在 Created或Setup 時不可用

開發(fā) 前端
如果你想知道為什么 URL中的查詢參數(shù)在你的 setup 方法或 created 鉤子中無處可尋,但當(dāng)插入它們時,它們?nèi)匀怀霈F(xiàn)在模板中,不要離開, 我們來一探究竟。

你的可能已經(jīng)注意到,VUE 3版本的 Vue router (4.0) 與其之前的版本有一些  breaking change 更改。大部分的 Vue Router API 都沒有變化,而且遷移過程也非常直接。然而,一個非常不明顯但重要的變化常常被忽視,它可能導(dǎo)致難以調(diào)試的行為。現(xiàn)在所有的導(dǎo)航都是異步的。

如果你想知道為什么 URL中的查詢參數(shù)在你的 ??setup???  方法或 ??created?? 鉤子中無處可尋,但當(dāng)插入它們時,它們?nèi)匀怀霈F(xiàn)在模板中,不要離開, 我們來一探究竟。

現(xiàn)在所有的導(dǎo)航都是異步的

為了探索這一點,我們將使用一個已經(jīng)安裝了Vue router 4.0 的Vue 3 骨架應(yīng)用的 barebones 。你可以在這個 repo 中跟著代碼走。

地址:https://github.com/Code-Pop/router-4-async。

項目下載下來后,運行 ??npm iinstall??? 然后 運行 ??npm run serve??,界面如下所示:

圖片

如果你現(xiàn)在在URL中添加一些查詢參數(shù),如 ??<a href="http://localhost:8080/?param=1" target="blank">http://localhost:8080/?param=1</a>??,頁面會刷新,并將參數(shù)顯示在界面上。

圖片圖片

讓我們看一下??App.vue???里面內(nèi)容,我們在組件中添加了一個 ??created??? 的鉤子。你會看到一個??console.log???行,它打印??$router.query??的內(nèi)容,就像我們在模板中的那樣。

<template>
<div id="nav">
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>
</div>
<router-view/>
Query:
<pre>{{ $route.query }}</pre>
</template>
<script>
export default {
data: () => ({}),
created () {
console.log(this.$route.query)
}
}
</script>

我們繼續(xù),像剛才一樣,使用和不使用查詢參數(shù)再次運行這個實驗。

你會注意到,無論添加多少個參數(shù),或者重新加載多少次頁面,控制臺打印的??this.$route.query??都是空的。

接著,讓我們來解開這個問題。

正如一開始提到的,一個經(jīng)常被忽視的Vue Router 4的破壞性變化是,現(xiàn)在所有的導(dǎo)航都是異步的。正如文檔所建議的那樣,在處理 ??transition?? 時,這一點變得更加明顯,因為當(dāng)Router從空到被數(shù)據(jù)填充時,它將觸發(fā)動畫。

我們之所以能在瀏覽器中看到參數(shù),但在控制臺中卻看不到,是因為Vue的響應(yīng)式的,一旦??Router???的查詢對象可用,就立即更新HTML。記住,它現(xiàn)在是異步的。這個過程很快,以至于對我們來說,它似乎一直都在那里,當(dāng)在 ??setup??? 函數(shù)或生命周期鉤子(如??created()??)中處理查詢參數(shù)時,這可能真的會令人困惑。

修復(fù)問題

幸運的是,這個問題的解決辦法是非常簡單。我們只需到 ??main.js?? 中,等待路由 ready 好后再掛載程序,如下所示:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(router)
// Replace -> app.mount('#app')
router.isReady().then(() => {
app.mount('#app')
})

現(xiàn)在,回到瀏覽器,添加參數(shù)并重新加載,就會在控制臺上看到我們的參數(shù)信息了。

責(zé)任編輯:姜華 來源: 大遷世界
相關(guān)推薦

2010-08-02 16:40:43

面試

2010-03-16 09:41:32

Python不可用

2011-10-27 09:31:25

Windows 8 B

2019-02-12 15:07:42

屏幕參數(shù)PC

2023-11-22 15:34:41

oracleSQL數(shù)據(jù)庫

2009-09-08 10:54:42

支付寶Firefox LinLinux插件

2022-02-09 11:22:22

數(shù)據(jù)庫MySQL連接池

2011-07-25 14:49:36

jQuery

2011-07-14 09:31:22

Sql Server屬性ErrorLogF注冊表

2021-06-26 10:46:04

Windows 11操作系統(tǒng)IE瀏覽器

2011-08-04 11:35:14

服務(wù)器注冊表

2021-09-21 10:41:19

iOS蘋果系統(tǒng)

2014-07-22 09:35:44

2025-05-19 09:30:42

FastAPI接口代碼

2021-11-11 08:20:47

Vue 技巧 開發(fā)工具

2025-04-17 00:00:00

2018-07-12 15:52:25

數(shù)字化CIO誤區(qū)

2024-04-03 12:30:00

C++開發(fā)

2024-04-24 13:45:00

2021-02-26 00:46:11

CIO數(shù)據(jù)決策數(shù)字化轉(zhuǎn)型
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品久久久亚洲 | 午夜小视频在线播放 | 日本精品一区二区三区视频 | 亚洲午夜三级 | 日本黄色一级片视频 | 伊人91在线 | 亚洲欧美激情网 | 久久精品高清视频 | 中文字幕亚洲视频 | 国产日韩欧美精品一区二区三区 | 国产精品免费一区二区三区四区 | 久久久精 | 日本成人片在线观看 | 精品亚洲一区二区三区四区五区高 | 久久久精品综合 | 中文在线播放 | 精品欧美乱码久久久久久1区2区 | 亚洲激情第一页 | 狠狠爱网址 | 精品亚洲视频在线 | 大乳boobs巨大吃奶挤奶 | 国产成人网 | 久草在线中文888 | 91精品国产99久久 | 亚洲天堂av在线 | 国产精品18毛片一区二区 | 五月综合久久 | 美国十次成人欧美色导视频 | 美女久久视频 | 国产精品日韩 | 91精品国产乱码久久久 | 综合久久国产 | 日本在线一二 | 国产精品一区二区久久 | 国产精品国产成人国产三级 | 日韩成人中文字幕 | 亚洲一区二区三区视频 | 欧美成人免费在线视频 | www四虎影视 | 最新超碰 | 一区二区三区四区在线播放 |