vue3配置router路由并實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)功能
1、安裝vue-router
用vue3需要安裝版本4.0以上的vue-router,安裝命令:
npm install vue-router@next --save
vue2盡量安裝4.0以下版本,安裝命令:
npm i vue-router@3.1.3
在package.json中可以查看vue-router版本號(hào):

2、根目錄下新建router文件夾,下面新建index.js文件和routes.js

2.1文件中引入vue方法、配置頁(yè)面具體路徑
vue2和vue3代碼區(qū)別如下:
【vue3】


ps:引入文件時(shí)記得新建view文件夾以及里面的A、B.vue兩個(gè)頁(yè)面
【vue2】

3、main.js文件中引入路由

4、APP.vue里聲明路由的占位符<router-view></router-view>

5、測(cè)試

6、文件代碼
HelloWorld.vue
<template>
<!-- <h1>{{ msg }}</h1> -->
<div class="card">
<router-link to="/A">A</router-link>
<router-link to="/B">B</router-link>
<!-- 第二種方法 router.push-->
<!-- <button @click="show('a')">A頁(yè)面</button>
<button @click="show('b')">B頁(yè)面</button> -->
</div>
</template>
<script setup>
import {useRouter,useRoute} from 'vue-router'
//const router = useRouter()
//const route = useRoute()
// defineProps({
// msg: String,
// })
// 第二種跳轉(zhuǎn)方法
// const show=(index)=> {
// if(index == 'a') {
// router.push('/a')
// }
// if(index == 'b') {
// router.push('/b')
// }
// }
</script>
<style scoped></style>
index.js
import {createRouter, createWebHashHistory,createWebHistory} from 'vue-router'
import routes from './routes'
const router = createRouter({
routes,
history: createWebHashHistory()
})
export default routerroutes.js
const a = () => import('../view/A.vue')
const b = () => import('../view/B.vue')
const routes = [
//實(shí)現(xiàn)路由重定向,當(dāng)進(jìn)入網(wǎng)頁(yè)時(shí),路由自動(dòng)跳轉(zhuǎn)到/a路由
//{
// path:'/',
// redirect:'/a'
// },
{
path: '/',
component:a,
},
{
name: 'a',
path: '/a',
component:a
},
{
name: 'b',
path: '/b',
component: b
},
];
export default routesAPP.vue
<script setup>
import HelloWorld from './components/HelloWorld.vue'
</script>
<template>
<div>
<h1>App 組件</h1>
<HelloWorld msg="hello" />
<!-- 聲明路由的占位符 -->
<router-view></router-view>
</div>
</template>
<style scoped>
</style>補(bǔ)充:
編程式導(dǎo)航
通過(guò)調(diào)用 API 實(shí)現(xiàn)導(dǎo)航的方式,叫做編程式導(dǎo)航。
與之對(duì)應(yīng)的,通過(guò)點(diǎn)擊鏈接實(shí)現(xiàn)導(dǎo)航的方式,叫做聲明式導(dǎo)航。例如:
1. 普通網(wǎng)頁(yè)中點(diǎn)擊 鏈接、vue 項(xiàng)目中點(diǎn)擊 都屬于聲明式導(dǎo)航
2. 普通網(wǎng)頁(yè)中調(diào)用 location.href 跳轉(zhuǎn)到新頁(yè)面的方式,屬于編程式導(dǎo)航
vue-router 中的編程式導(dǎo)航 API
vue-router 提供了許多編程式導(dǎo)航的 API,其中最常用的兩個(gè) API 分別是:
this.$router.push('hash 地址') 跳轉(zhuǎn)到指定 Hash 地址,從而展示對(duì)應(yīng)的組件
this.$router.go(數(shù)值 n) 實(shí)現(xiàn)導(dǎo)航歷史的前進(jìn)、后退history.go(-2);//后退兩次 history.go(2);//前進(jìn)兩次 history.back(); //后退 hsitory.forward(); //前進(jìn)
但是history也是有缺點(diǎn)的,不怕前進(jìn)后退跳轉(zhuǎn),就怕刷新(如果后端沒(méi)有準(zhǔn)備的話),因?yàn)樗⑿率菍?shí)實(shí)在在地去請(qǐng)求服務(wù)器了。
到此這篇關(guān)于vue3配置router路由并實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的文章就介紹到這了,更多相關(guān)vue3頁(yè)面跳轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue3配置permission.js和router、pinia實(shí)現(xiàn)路由攔截的簡(jiǎn)單步驟
- Vue3中關(guān)于路由規(guī)則的props配置方式
- vue3 vite pinia配置動(dòng)態(tài)路由、解決刷新頁(yè)面路由消失的問(wèn)題
- vue3路由配置以及路由跳轉(zhuǎn)傳參詳解
- Vue3路由配置createRouter、createWebHistory、useRouter和useRoute詳解
- vite?vue3下配置history模式路由的步驟記錄
- vue3容器布局和導(dǎo)航路由實(shí)現(xiàn)示例
- Vue3?路由配置與導(dǎo)航實(shí)戰(zhàn)教程
相關(guān)文章
動(dòng)態(tài)實(shí)現(xiàn)element ui的el-table某列數(shù)據(jù)不同樣式的示例
這篇文章主要介紹了動(dòng)態(tài)實(shí)現(xiàn)element ui的el-table某列數(shù)據(jù)不同樣式的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Vite+Vue3使用MockJS的實(shí)現(xiàn)示例
寫一些純前端的項(xiàng)目時(shí),自己造數(shù)據(jù)有些麻煩,于是我們可以利用mock造一些簡(jiǎn)單的數(shù)據(jù),來(lái)滿足我們的需求,本文主要介紹了Vite+Vue3使用MockJS的實(shí)現(xiàn)示例,感興趣的可以了解一下2024-01-01
在小程序/mpvue中使用flyio發(fā)起網(wǎng)絡(luò)請(qǐng)求的方法
這篇文章主要介紹了在小程序/mpvue中使用flyio發(fā)起網(wǎng)絡(luò)請(qǐng)求的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue watch監(jiān)聽(tīng)對(duì)象及對(duì)應(yīng)值的變化詳解
下面小編就為大家分享一篇vue watch監(jiān)聽(tīng)對(duì)象及對(duì)應(yīng)值的變化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
Vue中 v-if/v-show/插值表達(dá)式導(dǎo)致閃現(xiàn)的原因及解決辦法
在開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)發(fā)現(xiàn)當(dāng)頁(yè)面明明不應(yīng)該出現(xiàn)的元素或內(nèi)容會(huì)閃現(xiàn)一下然后消失,這篇文章給大家分享Vue中 v-if/v-show/插值表達(dá)式導(dǎo)致閃現(xiàn)的原因及解決辦法,一起看看吧2018-10-10
vue?element?ui表格相同數(shù)據(jù)合并單元格效果實(shí)例
工作中遇到需要根據(jù)單元格某個(gè)屬性合并,特此記錄下,下面這篇文章主要給大家介紹了關(guān)于vue?element?ui表格相同數(shù)據(jù)合并單元格效果的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
el-select二次封裝實(shí)現(xiàn)可分頁(yè)加載數(shù)據(jù)的示例代碼
使用el-select時(shí)一次性渲染幾百條數(shù)據(jù)時(shí)會(huì)造成頁(yè)面克頓, 可以通過(guò)分頁(yè)來(lái)實(shí)現(xiàn),所以本文給大家介紹了el-select二次封裝實(shí)現(xiàn)可分頁(yè)加載數(shù)據(jù),文中有詳細(xì)的代碼講解,具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12
vue項(xiàng)目中使用crypto-js實(shí)現(xiàn)加密解密方式
這篇文章主要介紹了vue項(xiàng)目中使用crypto-js實(shí)現(xiàn)加密解密方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05

