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

前端筆記(11) Vue3 Router 編程式導(dǎo)航 router.push router.replace

這篇具有很好參考價(jià)值的文章主要介紹了前端筆記(11) Vue3 Router 編程式導(dǎo)航 router.push router.replace。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

什么是編程式導(dǎo)航?

在上篇博客Vue3 Router 監(jiān)聽路由參數(shù)變化中,我們使用 <router-link> 創(chuàng)建 a 標(biāo)簽來定義導(dǎo)航鏈接:

<router-link to="/about"> 【about】 </router-link>
<router-link to="/home"> 【home】 </router-link>

除了 <router-link>,我們還可以借助 router 的實(shí)例方法,通過編寫代碼來實(shí)現(xiàn):

1:跳轉(zhuǎn)到指定路徑
router.push('/users/eduardo')

2:替換當(dāng)前路徑
router.replace({ path: '/home' })

3:橫跨歷史
router.go(1)//向前移動一條記錄,與 router.forward() 相同
router.go(-1)//返回一條記錄,與 router.back() 相同

router.push

router.push方法會向 history 棧添加一個新的記錄,所以,當(dāng)用戶點(diǎn)擊瀏覽器后退按鈕時,會回到之前的 URL。

聲明式 編程式
<router-link :to="..."> router.push(...)

我們接著上篇博客Vue3 Router 監(jiān)聽路由參數(shù)變化的案例來講。

1 簡單的跳轉(zhuǎn)

About.vue文件:

<template>
  <p>我是About頁面</p>
</template>

<script setup lang="ts">
</script>

Home.vue文件:

<template>
  <p>我是Home頁面</p>
  <el-button @click="goToAbout">go to about</el-button>
</template>

<script setup lang="ts">
import {useRouter} from 'vue-router'
import {ref} from "vue";

const router = useRouter()

function goToAbout(){
  //router.push('/about')
  router.push({ path: '/about' })
}
</script>

router配置文件:

import {createRouter, createWebHistory, RouteRecordRaw} from 'vue-router'

export const routes: Array<RouteRecordRaw> = [
    {
        path: '/home',
        component: () => import('@/views/Home.vue')
    },
    {
        path: '/about',
        component: () => import('@/views/About.vue')
    }
    ,
    {
        path: '/user/:id',
        name: 'user',
        component: () => import('@/views/User.vue')
    }
]

const router = createRouter({
    history: createWebHistory(),
    routes: routes as RouteRecordRaw[]
})

export default router

前端筆記(11) Vue3 Router 編程式導(dǎo)航 router.push router.replace

2 帶params參數(shù)的跳轉(zhuǎn)

  • 對于路徑:/user/1/user/2,會匹配到路由/user/:id,這個id的值可用$route.params.id取到

創(chuàng)建User.vue文件:

<template>
  <p>
    $route.params.id:{{$route.params.id}}
  </p>
</template>

<script setup lang="ts">
</script>

修改Home.vue文件:

<template>
  <p>我是Home頁面</p>
  <el-button @click="goToUser">go to user</el-button>
  <el-input v-model="userId" placeholder="輸入用戶Id"></el-input>
</template>

<script setup lang="ts">
import { useRouter} from 'vue-router'
import {ref} from "vue";

const router = useRouter()
const userId = ref();

function goToUser(){
  //router.push({ path: '/user/' + userId.value})
  //命名的路由,并加上參數(shù),讓路由建立 url
  router.push({ name: 'user', params: {id: userId.value}})
}
</script>

前端筆記(11) Vue3 Router 編程式導(dǎo)航 router.push router.replace
下面的兩句的效果是一樣的

router.push({ path: '/user/' + userId.value})
router.push({ name: 'user', params: {id: userId.value}})

要非常注意的是:

  • 第二個是name + params的組合使用
  • 如果是path + params的組合式不可以的,因?yàn)槿绻峁┝?code>path,則params 會被忽略
這個寫法是錯誤的!錯誤的!錯誤!
router.push({ path: '/user/', params: {id: userId.value}})

3 帶query查詢參數(shù)的跳轉(zhuǎn)

  • 對于路徑:/user?id=1、/user?id=2,會匹配到路由/user,這個id的值可用$route.query.id取到

修改router的配置,path: '/user/:id'改成path: '/user'

{
     path: '/user',
     name: 'user',
     component: () => import('@/views/User.vue')
}

修改Home.vued的goToUser方法

function goToUser(){
  router.push({ path: '/user', query: { id: userId.value }  })
}

User.vue文件中用$route.query.id替換$route.params.id

<template>
  <p>
    $route.query.id:{{$route.query.id}}
  </p>
</template>

前端筆記(11) Vue3 Router 編程式導(dǎo)航 router.push router.replace

router.replace

它的作用類似于 router.push,唯一不同的是,它在導(dǎo)航時不會向 history 添加新記錄,正如它的名字所暗示的那樣——它取代了當(dāng)前的條目。

聲明式 編程式
<router-link :to="..." replace> router.replace(...)

修改Home.vue文件如下:

<template>
  <p>我是Home頁面</p>
  <el-button @click="$router.push('/about')">push to about</el-button>
  <el-button @click="$router.replace('/about')">replace to about</el-button>
</template>

運(yùn)行結(jié)果如下:
前端筆記(11) Vue3 Router 編程式導(dǎo)航 router.push router.replace

router.go

該方法采用一個整數(shù)作為參數(shù),表示在歷史堆棧中前進(jìn)或后退多少步,類似于 window.history.go(n)。文章來源地址http://www.zghlxwxcb.cn/news/detail-468669.html

// 向前移動一條記錄,與 router.forward() 相同
router.go(1)

// 返回一條記錄,與 router.back() 相同
router.go(-1)

// 前進(jìn) 3 條記錄
router.go(3)

// 如果沒有那么多記錄,靜默失敗
router.go(-100)
router.go(100)

到了這里,關(guān)于前端筆記(11) Vue3 Router 編程式導(dǎo)航 router.push router.replace的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 路由,vue-router的基本用法,vue-router的常見用法$route.params、$router.push、$router.replace、$router.go

    路由,vue-router的基本用法,vue-router的常見用法$route.params、$router.push、$router.replace、$router.go

    路由(英文: router)就是 對應(yīng)關(guān)系 。 SPA指的是一個web網(wǎng)站只有唯一的一個HTML頁面, 所有組件的展示與切換 都在這唯一的一個頁面內(nèi)完成。此時, 不同組件之間的切換 需要通過 前端路由 來實(shí)現(xiàn)。 *結(jié)論:*在SPA項(xiàng)目中, 不同功能之間的切換 ,要 依賴于前端路由 來完成! 通俗

    2024年01月16日
    瀏覽(26)
  • Vue3+Vue-Router+Element-Plus根據(jù)后端數(shù)據(jù)實(shí)現(xiàn)前端動態(tài)路由——權(quán)限管理模塊

    Vue3+Vue-Router+Element-Plus根據(jù)后端數(shù)據(jù)實(shí)現(xiàn)前端動態(tài)路由——權(quán)限管理模塊

    提示:文章內(nèi)容仔細(xì)看一些,或者直接粘貼復(fù)制,效果滿滿 提示:文章大概 1、項(xiàng)目:前后端分離 2、前端:基于Vite創(chuàng)建的Vue3項(xiàng)目 3、后端:沒有,模擬的后端數(shù)據(jù) 4、關(guān)于路徑“@”符號——vite.config.js 文件里修改 提示:以下是本篇文章正文內(nèi)容,下面案例可供復(fù)制粘貼使用

    2024年02月02日
    瀏覽(118)
  • 完整的 vue-router 導(dǎo)航解析流程

    完整的 vue-router 導(dǎo)航解析流程

    在Vue.js中,vue-router是一個官方提供的路由管理器,它能夠幫助我們實(shí)現(xiàn)頁面之間的無縫切換和導(dǎo)航。 本文將深入探討vue-router的導(dǎo)航解析流程,并通過示例代碼演示如何使用vue-router實(shí)現(xiàn)完整的導(dǎo)航過程。 首先,讓我們來了解一下vue-router的基本概念。在vue-router中,我們可以通

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

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

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

    2024年02月09日
    瀏覽(27)
  • vue3引入router

    vue3引入router

    ? ? ? ? 進(jìn)入項(xiàng)目路徑的cmd下,執(zhí)行命令 ????????npm install vue-router@4 ? ? ? ? 或者yarn add vue-router@4 ? ? ? ? 推薦使用yarn命令,比npm安裝更快 ???????? ????????其中 path是訪問路徑,name時路由名稱,component: () = import(\\\'@/pages/home\\\')是對應(yīng)vue組件所在目錄。 ???????

    2023年04月08日
    瀏覽(14)
  • vue3:router安裝與使用

    vue3:router安裝與使用

    Terminal中運(yùn)行以下代碼自動安裝 安裝完成后,在package.json中查看vue-router是否安裝成功 src目錄下新建一個router文件夾,在router文件夾里新建一個index.js文件,index.js中的代碼如下 main.js中代碼如下 在主頁面App.vue中的模板內(nèi)寫入一下兩行代碼即可 運(yùn)行項(xiàng)目,打開運(yùn)行地址,此時

    2023年04月19日
    瀏覽(15)
  • Vue3 中路由Vue Router 的使用

    Vue3 中路由Vue Router 的使用

    在編寫vue里的SPA(Single Page Application單頁面應(yīng)用)時,我們始終繞不開路由的使用,vue-router4.0版里有一些重要更新,在這里分享給大家。 vue-router是vue.js官方給出的路由解決方案,能夠輕松的管理SPA項(xiàng)目中組件的切換 Vue Router 是 Vue.js 的官方路由。它與 Vue.js 核心深度集成,讓

    2024年02月02日
    瀏覽(15)
  • 一文詳解:Vue3中使用Vue Router

    Vue Router是一個官方的Vue.js路由管理器,它與 Vue.js 核心深度集成,通過它可以輕松地為單頁應(yīng)用程序(SPA)提供路由管理和導(dǎo)航功能。今天我們就來聊一聊Vue 3中使用Vue Router的那些事兒。 安裝Vue Router只需要在vue項(xiàng)目中打開終端,輸入如下命令即可安裝: npm 方式安裝 yarn方式

    2024年02月09日
    瀏覽(39)
  • Vue3配置路由(vue-router)

    Vue3配置路由(vue-router)

    緊接上篇文章,vue3的配置與vue2是有所差別的,本文就講述了如何配置,如果本文對你有所幫助請三連支持博主。 下面案例可供參考 使用npm命令進(jìn)行安裝 : npm install vue-router@4 完成后我們打開項(xiàng)目根目錄下的 package.json 文件: 如下即為成功 這里創(chuàng)建 view目錄,然后在view目錄

    2023年04月12日
    瀏覽(27)
  • vue3+ts:安裝路由(router)

    vue3+ts:安裝路由(router)

    ? ? ? ?1.安裝vue-router ????????vue3需要安裝4.0以上版本 ????????vue2最好安裝4.0以下版本 ? ? ? ? 安裝命令: ? ? ? ? 安裝完成后,在package.json中查看vue-router是否安裝成功 ? src目錄下新建一個router文件夾,在router文件夾里新建一個index.ts文件,代碼如下: main.ts中代碼

    2024年02月06日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包