国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue路由導(dǎo)航(replace、push、forward、back、go)

這篇具有很好參考價值的文章主要介紹了Vue路由導(dǎo)航(replace、push、forward、back、go)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Vue路由導(dǎo)航(replace、push、forward、back、go)

先了解棧結(jié)構(gòu),再學(xué)習(xí)以下內(nèi)容

Vue路由導(dǎo)航(replace、push、forward、back、go),Vue,vue.js,前端,前端框架,javascript

  • 棧的數(shù)據(jù)結(jié)構(gòu):先進(jìn)后出,后進(jìn)先出。
  • 原理:push將元素壓入棧內(nèi),pop將元素彈出,棧有分別有棧底指針和棧頂指針,指向棧內(nèi)最低和最高的元素。

replace和push屬性的原理

Vue路由導(dǎo)航(replace、push、forward、back、go),Vue,vue.js,前端,前端框架,javascript

Vue路由導(dǎo)航(replace、push、forward、back、go),Vue,vue.js,前端,前端框架,javascript

  • 瀏覽器中的前進(jìn)和后退的按鈕也是使用了棧的數(shù)據(jù)結(jié)構(gòu)實現(xiàn),但也有不同。對于瀏覽器而言,分別有兩種屬性:
    • push屬性(推進(jìn)):以疊加的方式進(jìn)行入棧操作。
    • replace屬性(替換):以替換棧頂元素的方式進(jìn)行入棧操作。
    • 注意1:不管有沒有使用其他屬性的,瀏覽器默認(rèn)添加push屬性。(僅在聲明式中使用,以下會講。)
    • 注意2:不管使用哪種屬性進(jìn)行操作,瀏覽器都不會刪除原有的瀏覽記錄,只會更改指針的指向。

replace和push屬性的’聲明式’路由導(dǎo)航和’編程式’路由導(dǎo)航

replace和push屬性的’聲明式’路由導(dǎo)航

  • 注意事項:
    • 不管有沒有使用其他屬性的,瀏覽器默認(rèn)添加push屬性,所以寫不寫push屬性都會使用。(以下是replace屬性)
    • 聲明式適合用于點擊超鏈接轉(zhuǎn)換路由的方式
    • query和params都可以使用
  • replace屬性兩種格式:<router-link :replace="true"><router-link replace>(簡寫)
<template>
    <div>
        <h2>A</h2>
        <div>
            <ul>
                <li>
                    <!-- 聲明式路由導(dǎo)航 -->
                    <router-link :replace="true" :to="{
                        name : 'ac',
                        params : {
                            a1 : a[0],
                            a2 : a[1],
                            a3 : a[2]
                        }
                    }" >
                        A1 Router-Link
                    </router-link>
                </li>
                <li>
                    <router-link replace :to="{
                        name : 'ad',
                        params : {
                            a1 : b[0],
                            a2 : b[1],
                            a3 : b[2]
                        }
                    }" >
                        A2 Router-Link
                    </router-link>
                </li>
            </ul>
        </div>
        <router-view></router-view>
    </div>
</template>

<script>
    export default {
        name : 'A',
        data(){
            return{
                a : ['111', '222', '333'],
                b : ['444', '555', '666']
            }
        }
    }
</script>

replace和push屬性的’編程式’路由導(dǎo)航

  • 注意事項:
    • 編程式適合用于點擊按鈕轉(zhuǎn)換路由的方式
    • 編程式跟聲明式不同,編程式可以使用相關(guān)的API來完成
    • query和params都可以使用
// push屬性的格式
// $router:多組件共享的路由器對象。
this.$router.push({
    name : '',
    query or params : {}
}, ()=>{}, ()=>{})
// replace屬性的格式
// $router:多組件共享的路由器對象。
this.$router.replace({
    name : '',
    query or params : {}
},  ()=>{}, ()=>{})
  • 解釋()=>{}, ()=>{}
    • 不使用()=>{}, ()=>{}的情況:在編程式反復(fù)執(zhí)行push和replace屬性瀏覽器控制臺會出現(xiàn)以下圖片情況

    • Vue路由導(dǎo)航(replace、push、forward、back、go),Vue,vue.js,前端,前端框架,javascript

    • 原因:在使用push和replace屬性時,會傳遞兩個回調(diào)函數(shù),一個是成功回調(diào),一個是失敗回調(diào)。如果沒有傳遞回調(diào)函數(shù),則就會出現(xiàn)報錯的情況,在后面加上()=>{}, ()=>{}就好了。文章來源地址http://www.zghlxwxcb.cn/news/detail-738477.html

<template>
    <div>
        <h2>A</h2>
        <div>
            <ul>
                <li>
                    <button @click="goA1">A1 Button</button>
                </li>
                <li>
                    <button @click="goA2">A2 Button</button>
                </li>
            </ul>
        </div>
        <router-view></router-view>
    </div>
</template>

<script>
    export default {
        name : 'A',
        data(){
            return{
                a : ['111', '222', '333'],
                b : ['444', '555', '666']
            }
        },
        methods : {
            goA1(){
                // 編程式路由導(dǎo)航
                // $router:多組件共享的路由器對象。
                this.$router.push({
                        name : 'ac',
                        params : {
                            a1 : this.a[0],
                            a2 : this.a[1],
                            a3 : this.a[2]
                        }
                    }, ()=>{}, ()=>{})
            },
            goA2(){
                this.$router.replace({
                    name : 'ad',
                    params : {
                        a1 : this.b[0],
                        a2 : this.b[1],
                        a3 : this.b[2]
                    }
                },  ()=>{}, ()=>{})
            }
        }
    }
</script>

forward、back和go的’編程式’路由導(dǎo)航

  • forward:前進(jìn),this.$router.forward()
  • back:后退,this.$router.back()
  • go:前進(jìn)幾步、后退幾步,this.$router.go()
    • 括號內(nèi)為正數(shù)表示前進(jìn),負(fù)數(shù)表示后退,數(shù)字表示幾步
// App.vue
<template>
    <div>
        <button @click="forward">前進(jìn)</button>
        <button @click="back">后退</button>
        <button @click="forwardFive">前進(jìn)5</button>
        <button @click="backFive">后退5</button>
    </div>
</template>

<script>
    export default {
        name : 'App',
        methods : {
            forward(){
                this.$router.forward()
            },
            back(){
                this.$router.back()
            },
            forwardTwo(){
                this.$router.go(5)
            },
            backTwo(){
                this.$router.go(-5)
            }
        }
    }
</script>
k()
            },
            forwardTwo(){
                this.$router.go(5)
            },
            backTwo(){
                this.$router.go(-5)
            }
        }
    }
</script>

到了這里,關(guān)于Vue路由導(dǎo)航(replace、push、forward、back、go)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Vue2-replace屬性、編程式路由導(dǎo)航、緩存路由組件、兩個新的生命周期鉤子、路由守衛(wèi)、路由器工作模式

    Vue2-replace屬性、編程式路由導(dǎo)航、緩存路由組件、兩個新的生命周期鉤子、路由守衛(wèi)、路由器工作模式

    ??:如果事與愿違,那一定是上天另有安排 更多Vue知識請點擊——Vue.js 1.作用:控制路由跳轉(zhuǎn)時操作瀏覽器歷史記錄的模式 2.瀏覽器的歷史記錄有兩種寫入方式:分別為 push 和 replace , push是追加歷史記錄,replace是替換當(dāng)前記錄 。路由跳轉(zhuǎn)時候 默認(rèn)為push 3.如何開啟replace模

    2024年02月10日
    瀏覽(50)
  • 編程式導(dǎo)航、緩存路由組件、路由守衛(wèi)、Vue UI組件庫【VUE】

    作用:不借助 router-link 實現(xiàn)路由跳轉(zhuǎn),讓路由跳轉(zhuǎn)更加靈活 具體編碼: 作用:讓不展示的路由組件保持掛載,不被銷毀 具體編碼: 作用:路由組件所獨有的兩個鉤子,用于捕獲路由組件的激活狀態(tài)。 具體名字: (1)activated路由組件被激活時觸發(fā) (2)deactivated路由組件失

    2024年02月03日
    瀏覽(54)
  • Vue中的路由導(dǎo)航

    聲明式路由導(dǎo)航 router官網(wǎng)-起步 聲明式路由導(dǎo)航其實就是使用官方給的router-link路由導(dǎo)航標(biāo)簽直接進(jìn)行路由跳轉(zhuǎn) 編程式路由導(dǎo)航 router官網(wǎng)-編程式路由導(dǎo)航 除了使用 創(chuàng)建 a 標(biāo)簽來定義導(dǎo)航鏈接,我們還可以借助 router 的實例方法,通過編寫代碼來實現(xiàn)

    2023年04月23日
    瀏覽(29)
  • Vue-路由-聲明式導(dǎo)航

    Vue-路由-聲明式導(dǎo)航

    vue-router 提供了一個全局組件 router-link (取代 a 標(biāo)簽) 能跳轉(zhuǎn),配置 to 屬性指定路徑(必須) 。本質(zhì)還是 a 標(biāo)簽 ,to 無需 # 能高亮,默認(rèn)就會提供高亮類名,可以直接設(shè)置高亮樣式 如: 我們發(fā)現(xiàn) router-link 自動給當(dāng)前導(dǎo)航添加了 兩個高亮類名 router-link-active:模糊匹配 (用的多

    2024年01月17日
    瀏覽(25)
  • React/Vue實現(xiàn)路由鑒權(quán)/導(dǎo)航守衛(wèi)/路由攔截

    1、實現(xiàn)思路 自己封裝? AuthRoute ?路由鑒權(quán)高階組件,實現(xiàn)未登錄攔截,并跳轉(zhuǎn)到登錄頁面 思路為:判斷本地是否有token,如果有,就返回子組件,否則就重定向到登錄Login 2、實現(xiàn)步驟 在 components 目錄中,創(chuàng)建 AuthRoute/index.js 文件 判斷是否登錄 登錄時,直接渲染相應(yīng)頁面組

    2024年02月15日
    瀏覽(25)
  • Vue--》深入理解 Vue 3 導(dǎo)航守衛(wèi),掌握前端路由的靈魂技能!

    Vue--》深入理解 Vue 3 導(dǎo)航守衛(wèi),掌握前端路由的靈魂技能!

    目錄 vue3導(dǎo)航守衛(wèi)講解與使用 element-ui的安裝與使用 配置路由和設(shè)置路徑別名

    2024年02月05日
    瀏覽(26)
  • Vue3項目-配置路由及側(cè)邊欄導(dǎo)航欄

    Vue3項目-配置路由及側(cè)邊欄導(dǎo)航欄

    1.在views 文件夾中創(chuàng)建文件夾 并在其中一個文件夾中創(chuàng)建一個vue文件? 因為 沒有配置TS 因此script 后面沒有跟lang=\\\"ts\\\"? 例如 下圖所示?? ? ?2.在router文件夾下面index文件中? routes數(shù)組添加重定向? 其中某對象中添加 children 屬性 配置 二級路由 并關(guān)聯(lián)上想要鏈接的頁面? compon

    2024年02月09日
    瀏覽(19)
  • 路由緩存問題 | vue-router的導(dǎo)航守衛(wèi)

    路由緩存問題 | vue-router的導(dǎo)航守衛(wèi)

    ???????? 帶參路由,當(dāng) 參數(shù)發(fā)生變化時,相同的組件實例將被復(fù)用 ,組件的 生命周期鉤子不會被調(diào)用, 導(dǎo)致 請求不會被重新發(fā)送, 以至于 數(shù)據(jù)無法更新 。 兩種解決方法: 1. 給 RouterView綁定key值 ,即 特點:不復(fù)用,破壞組件緩存,強(qiáng)制執(zhí)行,存在一定的 浪費 ,即

    2024年02月09日
    瀏覽(30)
  • 20230706----重返學(xué)習(xí)-vue路由導(dǎo)航守衛(wèi)相關(guān)-物美后臺管理系統(tǒng)

    常見面試題 面試題:介紹一下 vue-router 中的導(dǎo)航守衛(wèi)函數(shù) 面試題:介紹一下你對vue-router的理解? 導(dǎo)航守衛(wèi)函數(shù) 面試題:介紹一下 vue-router 中的導(dǎo)航守衛(wèi)函數(shù) 在每一次路由切換的時候,首先把路由匹配、導(dǎo)航確認(rèn)等事宜先處理好-在此期間會觸發(fā)一系列的鉤子函數(shù),這些函數(shù)

    2024年02月12日
    瀏覽(52)
  • 【Vue.js】使用Element中的Mock.js搭建首頁導(dǎo)航&左側(cè)菜單---【超高級教學(xué)】

    【Vue.js】使用Element中的Mock.js搭建首頁導(dǎo)航&左側(cè)菜單---【超高級教學(xué)】

    ? ? ? Mock.js是一個用于前端開發(fā)中生成隨機(jī)數(shù)據(jù)、模擬接口響應(yīng)的 JavaScript 庫。模擬數(shù)據(jù)的生成器,用來幫助前端調(diào)試開發(fā)、進(jìn)行前后端的原型分離以及用來提高自動化測試效率 總結(jié)來說,Element中的Mock.js是一個用于前端開發(fā)中生成隨機(jī)數(shù)據(jù)、模擬接口響應(yīng)的庫。它可以幫助

    2024年02月07日
    瀏覽(45)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包