VUE3(五)vue路由vue-router4

使用vue-router,這里特別說明一下,我這里記錄的是vue-router文件的編寫。及在頁面中的使用谊惭。

我的站點主要分為三個部分:

1:pc端頁面的路由
2:手機端頁面的路由
3:后端管理系統(tǒng)的路由

因此,我這里會使用到路由嵌套(子路由)。

具體的用法請參照官方文檔:

https://router.vuejs.org/

我這里放一下我當(dāng)前使用文件得我內(nèi)容圈盔。我使用的基礎(chǔ)語言是typescript:

Index.ts

// 引入vue-router對象
import { createRouter, createWebHistory, ErrorHandler } from "vue-router";
/**
 * 定義路由數(shù)組
 */
const routes = [
  {// 404路由
    path: '/404',
    name: '404',
    component: ()=>import('/@/views/404.vue')
  },
  {// 后端管理系統(tǒng)路由組
    path: "/admin",
    redirect: "/admin/home",
    name: "admin",
    component: () => import("/@/views/admin.vue"),
    children: [
        {
            path: "home",
            name: "home",
            meta: { 
              requireAuth: true // 添加該字段豹芯,表示進(jìn)入這個路由是需要登錄的
            },
            component: () => import("/@/views/admin/Home.vue")
        },
        {
            path: "setting",
            name: "setting",
            meta: { 
              requireAuth: true // 添加該字段,表示進(jìn)入這個路由是需要登錄的
            },
            component: () => import("/@/views/admin/Setting.vue")
        },
    ]
  },
  {// 博客主站pc端頁面路由
    path: "/pc",
    redirect: "/pc/index",
    name: "pc",
    component: () => import("/@/views/pc.vue"),
    children: [
        {
            path: "index",
            name: "首頁",
            component: () => import("/@/views/pc/Home.vue"),
        },
    ]
  },
  {// 博客主站手機端頁面路由
    path: "/phone",
    redirect: "/phone/pindex",
    name: "phone",
    component: () => import("/@/views/phone.vue"),
    children: [
        {
            path: "pindex",
            name: "Home",
            component: () => import("/@/views/phone/Home.vue")
        },
    ]
  },
];
 
/**
 * 創(chuàng)建路由
 */
const router = createRouter({
  // hash模式:createWebHashHistory驱敲,
  // history模式:createWebHistory
  history: createWebHistory("/"),
  // history:createWebHashHistory(),
  routes,
});
 
/**
 * 路由守衛(wèi)
 */
router.beforeEach((guard) => {
  beforeEach.checkAuth(guard, router);
});
 
/**
 * 路由錯誤回調(diào)
 */
router.onError((handler: ErrorHandler) => {
  console.log("error:", handler);
});
 
/**
 * 輸出對象
 */
export default router;

當(dāng)然铁蹈,目前這個文件只能滿足最基礎(chǔ)的跳轉(zhuǎn),并且在路由首位中添加了404頁跳轉(zhuǎn)癌佩。以上基本都有注釋木缝,參考就好。

在頁面中使用:

Vue3,是可以和vue2一樣將router掛載至vue對象上的围辙。

但是,官方不建議這么做放案,因此呢姚建,vue-router是每個單頁分別引入的。

大概是這個樣子:

import { useRouter, useRoute } from "vue-router";
export default {
    name: "article,
    components: {},
    // VUE3 語法 第一個執(zhí)行的鉤子函數(shù)
    // setup官方文檔
    // https://www.vue3js.cn/docs/zh/guide/composition-api-setup.html#參數(shù)
    setup(props: any, content: any) {
        // 實例化路由
        var router = useRouter();
       // 路由參數(shù)
        var route = useRoute();
        /**
         * @name: 聲明data
         * @author: camellia
         * @email: guanchao_gc@qq.com
         * @date: 2021-01-18
         */
        const data = reactive({
            // 文章id
            article_id: route.query.article_id ? route.query.article_id : 0,
        });
/**
         * @name: 子分類顯示
         * @author: camellia
         * @email: guanchao_gc@qq.com
         * @date: 2021-01-15          */
        const cateSonShow = (cate_id_son:number) =>{
            data.cate_id_son = cate_id_son;
            router.push(
            {
                path: '/pc/articleList',
                // 路由query傳參
                query: {
                    cate_id_son: data.cate_id_son
                }
            });
        }
}

更多關(guān)于vue-router4的功能吱殉,請參考官方文檔:

https://next.router.vuejs.org/installation.html

具體代碼實現(xiàn)掸冤,請參考我的代碼vue3代碼庫:https://gitee.com/camelliass/vue3blog

有好的建議,請在下方輸入你的評論友雳。

歡迎訪問個人博客
https://guanchao.site

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末稿湿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子押赊,更是在濱河造成了極大的恐慌饺藤,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件流礁,死亡現(xiàn)場離奇詭異涕俗,居然都是意外死亡,警方通過查閱死者的電腦和手機神帅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門再姑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人找御,你說我怎么就攤上這事元镀。” “怎么了霎桅?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵栖疑,是天一觀的道長。 經(jīng)常有香客問我哆档,道長蔽挠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮澳淑,結(jié)果婚禮上比原,老公的妹妹穿的比我還像新娘。我一直安慰自己杠巡,他們只是感情好量窘,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著氢拥,像睡著了一般蚌铜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嫩海,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天冬殃,我揣著相機與錄音,去河邊找鬼叁怪。 笑死审葬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奕谭。 我是一名探鬼主播涣觉,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼血柳!你這毒婦竟也來了官册?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤难捌,失蹤者是張志新(化名)和其女友劉穎膝宁,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體栖榨,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡昆汹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了婴栽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片满粗。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖愚争,靈堂內(nèi)的尸體忽然破棺而出映皆,到底是詐尸還是另有隱情,我是刑警寧澤轰枝,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布捅彻,位于F島的核電站,受9級特大地震影響鞍陨,放射性物質(zhì)發(fā)生泄漏步淹。R本人自食惡果不足惜从隆,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缭裆。 院中可真熱鬧键闺,春花似錦、人聲如沸澈驼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缝其。三九已至挎塌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間内边,已是汗流浹背榴都。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留漠其,地道東北人缭贡。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像辉懒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谍失,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容