欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue路由監(jiān)聽的一些常用方式

 更新時(shí)間:2023年10月09日 09:13:05   作者:前端-文龍剛  
有時(shí)在頁(yè)面刷新或者返回等操作時(shí),想監(jiān)聽路由變化進(jìn)行數(shù)據(jù)更新等操作,下面這篇文章主要給大家介紹了關(guān)于vue路由監(jiān)聽的一些常用方式,需要的朋友可以參考下

場(chǎng)景:

我們?cè)谧鲰?xiàng)目時(shí),會(huì)遇到部分需求是根絕路由的切換來判斷某些值,下面介紹部分常用的監(jiān)聽方式

一、 通過 watch 進(jìn)行監(jiān)聽

// 方式1、監(jiān)聽路由 $route 變化  一般監(jiān)聽
export default{
watch: {
$route(to, from){
console.log('路由變化了')
console.log('當(dāng)前頁(yè)面路由:' + to.path);
console.log('上一個(gè)路由:' + from);
},
}
}
// 方式2、監(jiān)聽路由 $route 變化, 使用handler函數(shù) 深度監(jiān)聽路由
export default{
watch: {
'$route': { // $route可以用引號(hào),也可以不用引號(hào)  監(jiān)聽的對(duì)象
handler(to, from){
console.log('路由變化了')
console.log('當(dāng)前頁(yè)面路由:' + to);
console.log('上一個(gè)路由:' + from);
},
deep: true, // 深度觀察監(jiān)聽 設(shè)置為 true
immediate: true, // 第一次初始化渲染就可以監(jiān)聽到
}
}
}
// 方式3、監(jiān)聽路由 $route 變化,觸發(fā)methods里的方法
export default{
watch: {
'$route': 'initData'
},
methods: {
initData(){
console.log('路由變化了')
}
}
}
// 方式4、監(jiān)聽路由的 path 變化
export default{
watch: {
'$route.path'(toPath, fromPath){
console.log('路由變化了')
console.log('當(dāng)前頁(yè)面路由地址:' + toPath)
console.log('上一個(gè)路由地址:' + fromPath)
},
}
}
// 方式5、監(jiān)聽路由的 path 變化, 使用handler函數(shù)
export default{
watch: {
'$route.path': {
handler(toPath, fromPath){
console.log('路由變化了')
console.log('當(dāng)前頁(yè)面路由地址:' + toPath)
console.log('上一個(gè)路由地址:' + fromPath)
},
deep: true, // 深度監(jiān)聽
immediate: true, // 第一次初始化渲染就可以監(jiān)聽到
}
}
}
// 方式6、監(jiān)聽路由的 path 變化,觸發(fā)methods里的方法
export default{
watch: {
'$route.path': 'initData'
},
methods: {
initData(){
console.log('路由變化了')
}
}
}

二、通過鉤子函數(shù)beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave進(jìn)行監(jiān)聽

export default{
beforeRouteEnter(to, from, next){
// 渲染該組件前調(diào)用這個(gè)鉤子,因此組件還未被創(chuàng)建,不能獲取this
console.log(this) // 結(jié)果為:undefined
console.log('beforeRouteEnter')
next()
},
beforeRouteUpdate(to, from, next){
//這個(gè)組件是被復(fù)用的時(shí)候調(diào)用,比如帶有動(dòng)態(tài)參數(shù)的路由跳轉(zhuǎn):/add/11 跳轉(zhuǎn)到 /detail/12
console.log(this) // 可以訪問this
console.log('beforeRouteUpdate')
next()
},
beforeRouteLeave(to, from, next){
// 導(dǎo)航離開當(dāng)前路由的時(shí)候被調(diào)用,this可以被訪問到
console.log(this) // 可以訪問this
console.log('beforeRouteLeave')
next()
},
}

三、全局路由監(jiān)聽 this.$router.beforeEach

// 方式1、在App.vue的create中進(jìn)行全局路由監(jiān)聽
export default  {
name:  'App',
created() {
this.$router.beforeEach((to, from, next) => {
console.log(to);
console.log(from);
next()
})
}
}
// 方式2、在路由文件(/router/index.js)中進(jìn)行全局路由監(jiān)聽
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
let routes = [
{
path: '/login',
component: resolve => require(['@/views/login'], resolve),
},
]
let router = new Router({
mode: 'history', // 去掉 url 中的 #
scrollBehavior: () => ({ y: 0 }),
base: process.env.VUE_APP_BASE_DOMAIN,
routes,
})
router.beforeEach((to, from, next) => {
console.log(to);
console.log(from);
next()
})
export {
routes
router
}

總結(jié) 

到此這篇關(guān)于vue路由監(jiān)聽的一些常用方式的文章就介紹到這了,更多相關(guān)vue路由監(jiān)聽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vuecli3打包后出現(xiàn)跨域問題,前端配置攔截器無效的解決

    vuecli3打包后出現(xiàn)跨域問題,前端配置攔截器無效的解決

    這篇文章主要介紹了vuecli3打包后出現(xiàn)跨域問題,前端配置攔截器無效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 深入淺析Vue中的 computed 和 watch

    深入淺析Vue中的 computed 和 watch

    computed 計(jì)算屬性是通過屬性計(jì)算得來的屬性,watch屬性變化,就會(huì)觸發(fā)監(jiān)聽的函數(shù)。下面通過本文給大家介紹Vue中的 computed 和 watch,感興趣的朋友一起看看吧
    2018-06-06
  • Vue使用openlayers實(shí)現(xiàn)繪制圓形和多邊形

    Vue使用openlayers實(shí)現(xiàn)繪制圓形和多邊形

    這篇文章主要為大家詳細(xì)介紹了Vue如何使用openlayers實(shí)現(xiàn)繪制圓形和多邊形,文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編一起動(dòng)手嘗試一下
    2022-06-06
  • 利用Vue實(shí)現(xiàn)一個(gè)累加向上漂浮動(dòng)畫

    利用Vue實(shí)現(xiàn)一個(gè)累加向上漂浮動(dòng)畫

    在不久之前,看到一個(gè)比較有意思的小程序,就是靜神木魚,可以實(shí)現(xiàn)在線敲木魚,自動(dòng)敲木魚,手盤佛珠,靜心頌缽的,下面就來揭秘如何實(shí)現(xiàn)這個(gè)小程序中敲木魚的累加向上漂浮動(dòng)畫,需要的可以參考一下
    2022-11-11
  • Vue指令之v-for的使用說明

    Vue指令之v-for的使用說明

    這篇文章主要介紹了Vue指令之v-for的使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue高德地圖之玩轉(zhuǎn)周邊

    vue高德地圖之玩轉(zhuǎn)周邊

    vue高德地圖,帶你玩轉(zhuǎn)周邊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • elementui之el-table-column日期格式顯示方式

    elementui之el-table-column日期格式顯示方式

    文章介紹了如何使用formatter屬性對(duì)表格某一列的內(nèi)容進(jìn)行日期格式化,通過綁定日期格式化的方法實(shí)現(xiàn),展示了前端代碼的模板和方法,并給出了前端效果的展示
    2024-12-12
  • import.meta.glob() 如何導(dǎo)入多個(gè)目錄下的資源(最新推薦)

    import.meta.glob() 如何導(dǎo)入多個(gè)目錄下的資源(最新推薦)

    import.meta.glob() 其實(shí)不僅能接收一個(gè)字符串,還可以接收一個(gè)字符串?dāng)?shù)組,就是匹配多個(gè)位置,本文給大家介紹import.meta.glob() 如何導(dǎo)入多個(gè)目錄下的資源,感興趣的朋友一起看看吧
    2023-11-11
  • IOS上微信小程序密碼框光標(biāo)離開提示存儲(chǔ)密碼的完美解決方案

    IOS上微信小程序密碼框光標(biāo)離開提示存儲(chǔ)密碼的完美解決方案

    ios密碼框輸入密碼光標(biāo)離開之后會(huì)提示存儲(chǔ)密碼的彈窗,關(guān)于這樣的問題怎么解決呢,下面給大家分享IOS上微信小程序密碼框光標(biāo)離開提示存儲(chǔ)密碼的完美解決方案,感興趣的朋友一起看看吧
    2024-07-07
  • Vue的watch和computed方法的使用及區(qū)別介紹

    Vue的watch和computed方法的使用及區(qū)別介紹

    Vue的watch屬性可以用來監(jiān)聽data屬性中數(shù)據(jù)的變化。這篇文章主要介紹了Vue的watch和computed方法的使用及區(qū)別,需要的朋友可以參考下
    2018-09-09

最新評(píng)論