摘要:重定向可以實(shí)現(xiàn)某些需要根據(jù)特定邏輯改變頁(yè)面原本路由的需求,例如簡(jiǎn)單的未登錄狀態(tài)下的頁(yè)面訪問(wèn)個(gè)人信息路由時(shí)應(yīng)該重定向到登錄路由頁(yè)面。
前言
為了給讀者更好的體驗(yàn),去理解vue-router和下一篇介紹vuex,決定還是來(lái)一個(gè)實(shí)戰(zhàn)教程來(lái)帶大家更加的去深入理解vue-router,在這之前,讀者先自行了解和去官網(wǎng)下載npm和node,附:npm官網(wǎng)
項(xiàng)目構(gòu)建這里我采用vue-cli+webpack構(gòu)建初始項(xiàng)目,在vue官網(wǎng)里面也有相關(guān)介紹,在這里我就手把手教大家一下吧,先通過(guò)控制臺(tái)進(jìn)入相關(guān)的文件目錄下,然后輸入
# 后面是注釋 # $表示當(dāng)前文件目錄 # 全局安裝 vue-cli $ npm install --global vue-cli # 創(chuàng)建一個(gè)基于 webpack 模板的新項(xiàng)目 $ vue init webpack my-project # 安裝依賴,走你 $ cd my-project $ npm install # 運(yùn)行項(xiàng)目my-preoject $ npm run dev
npm install --global vue-cli 下載構(gòu)建工具
vue init webpack my-project 初始化項(xiàng)目
npm install 下載相關(guān)資源到node_models
npm run dev 運(yùn)行項(xiàng)目后,在瀏覽器輸入http://localhost:8080/#/可看到
介紹vue-router經(jīng)過(guò)上面簡(jiǎn)單的構(gòu)建之后,一個(gè)項(xiàng)目的初始化就完成了,這里vue-cli和webpack已經(jīng)幫我們弄好了文件目錄結(jié)構(gòu)和基本目錄
在進(jìn)行使用vue-router之前,我不得不也先介紹一下vue-router是什么?
它是一個(gè)vue.js下的路由組件,那什么是路由呢?網(wǎng)上有一大堆官方的介紹,相信對(duì)于小白是難以理解的,這里我就簡(jiǎn)單的說(shuō)明一下吧。
其實(shí)路由也就是url,url是什么呢?url就是唯一資源定位符,簡(jiǎn)單的說(shuō),也就是標(biāo)記頁(yè)面的唯一存在的一個(gè)標(biāo)簽,就像https://www.baidu.com,這里的www.baidu.com就是唯一資源定位符,https就只是一種協(xié)議,規(guī)范計(jì)算機(jī)網(wǎng)絡(luò)的通信協(xié)議。
介紹完這些,那么對(duì)于我們究竟該怎么用呢?
其實(shí)很簡(jiǎn)單,在平時(shí)當(dāng)中,我們就經(jīng)常碰到在一個(gè)網(wǎng)站里面點(diǎn)擊鏈接會(huì)彈到另外一個(gè)頁(yè)面,然后就可以發(fā)現(xiàn)他們的url改變了,而vue-router就是這樣,在同個(gè)域名下(這里的域名是http://localhost:8080),改變域名后面的字符參數(shù),比如http://localhost:8080/me和http://localhost:8080/you是兩個(gè)不同的頁(yè)面就是靠vue-router進(jìn)行實(shí)現(xiàn)的。
引用vue-router如果你在之前沒(méi)有安裝vue-router的話,建議可以先去官網(wǎng),看著文檔使用npm安裝一下,這里就不多做介紹了。
首先我先在項(xiàng)目my-project/src/components(存放組件的目錄)里面添加兩個(gè)文件me.vue和you.vue
// me.vue我是me// you.vue我是you
然后修改my-project/src/router(存放路由相關(guān)信息的目錄)下面修改index.js成
import Vue from "vue" import Router from "vue-router" import HelloWorld from "@/components/HelloWorld" // 導(dǎo)入組件 import me from "../components/me" import you from "../components/you" Vue.use(Router) export default new Router({ routes: [ { path: "/", name: "HelloWorld", component: HelloWorld }, // 將組件命名到路由上,輸入http://localhost:8080/#/me // 即可進(jìn)入不同的頁(yè)面 { path: "/me", component: me }, // 將組件命名到路由上,輸入http://localhost:8080/#/you // 即可進(jìn)入不同的頁(yè)面 { path: "/you", component: you } ] })
這樣只會(huì)輸入http://localhost:8080/#/me就會(huì)進(jìn)到其他頁(yè)面,是不是很簡(jiǎn)單,
那么我們?cè)趺丛陧?yè)面里面進(jìn)行跳轉(zhuǎn)呢?
這就運(yùn)用到了更有趣的知識(shí)了就是router-link你只要在你的組件的代碼下輸入
這里是跳轉(zhuǎn)鏈接
網(wǎng)頁(yè)就自動(dòng)跳轉(zhuǎn)到http://localhost:8080/#/me頁(yè)面了,但是這樣總是不好的,因?yàn)椋绻捎谝恍┰?,我們想修改路由的名字(比如me改成him)就得改兩個(gè)文件的信息,因此,vue團(tuán)隊(duì)也早就想好了,就是name屬性,將my-project/src/router(存放路由相關(guān)信息的目錄)下面修改index.js成
// ... { path: "/me", name: "me", component: me }, // ...
然后跳轉(zhuǎn)就改成
這里是跳轉(zhuǎn)鏈接
就可以進(jìn)行跳轉(zhuǎn)了
高級(jí)應(yīng)用前端路由 最初級(jí)的應(yīng)用,就和上面的引用一樣,當(dāng)然還可以通過(guò)js代碼來(lái)改變,這個(gè)也很簡(jiǎn)單,就是比如添加一個(gè)按鈕,點(diǎn)擊按鈕通過(guò)js跳轉(zhuǎn)到其他頁(yè)面,就是重定向,簡(jiǎn)單的js代碼也下面這樣,就可以跳轉(zhuǎn)到其他頁(yè)面了
vue.$router.push("/me")
動(dòng)態(tài)路由 通過(guò)router-link傳遞參數(shù),例如
嵌套路由 嵌套路由其實(shí)簡(jiǎn)單的理解就是,子路由,例如,我想在me下面在添加幾個(gè)路由him和she那上面的代碼可以這樣寫之后輸入http://localhost:8080/#/me/him就可以進(jìn)入到子路由的頁(yè)面
// ... { path: "/me", name: "me", component: me, children: [ { path: "him" // ... }, { path: "she" // ... } ] }, // ...
懶加載 結(jié)合異步組件以及在組件的created鉤子上觸發(fā)獲取數(shù)據(jù)的ajax請(qǐng)求,可以最大化的降低加載時(shí)間,減少流量消耗。這個(gè)對(duì)于沒(méi)有項(xiàng)目的人可能接觸比較少,建議先知道這個(gè)概念。
重定向 可以實(shí)現(xiàn)某些需要根據(jù)特定邏輯改變頁(yè)面原本路由的需求,例如簡(jiǎn)單的未登錄狀態(tài)下的頁(yè)面訪問(wèn)“個(gè)人信息”路由時(shí)應(yīng)該重定向到登錄路由頁(yè)面。
History的控制 History是Html5的新語(yǔ)法,個(gè)人覺(jué)得就是對(duì)于跳轉(zhuǎn)的時(shí)候,特別是微信小程序,就是控制點(diǎn)擊回退按鈕的時(shí)候不至于退出頁(yè)面而跳轉(zhuǎn)到自己想要的頁(yè)面
總結(jié)其實(shí)還有很多高級(jí)應(yīng)用場(chǎng)景,我就不一一列舉出來(lái)了,因?yàn)檫@些其實(shí)最好還是上官方文檔進(jìn)行說(shuō)明,我這里只是解釋一下簡(jiǎn)單的用法,以及初學(xué)者可能對(duì)官方文檔會(huì)有誤解來(lái)進(jìn)行說(shuō)明一下,希望大家還是學(xué)會(huì)看API,附官網(wǎng)地址
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/51791.html
摘要:重定向可以實(shí)現(xiàn)某些需要根據(jù)特定邏輯改變頁(yè)面原本路由的需求,例如簡(jiǎn)單的未登錄狀態(tài)下的頁(yè)面訪問(wèn)個(gè)人信息路由時(shí)應(yīng)該重定向到登錄路由頁(yè)面。 前言 為了給讀者更好的體驗(yàn),去理解vue-router和下一篇介紹vuex,決定還是來(lái)一個(gè)實(shí)戰(zhàn)教程來(lái)帶大家更加的去深入理解vue-router,在這之前,讀者先自行了解和去官網(wǎng)下載npm和node,附:npm官網(wǎng) 項(xiàng)目構(gòu)建 這里我采用vue-cli+web...
摘要:重定向可以實(shí)現(xiàn)某些需要根據(jù)特定邏輯改變頁(yè)面原本路由的需求,例如簡(jiǎn)單的未登錄狀態(tài)下的頁(yè)面訪問(wèn)個(gè)人信息路由時(shí)應(yīng)該重定向到登錄路由頁(yè)面。 前言 為了給讀者更好的體驗(yàn),去理解vue-router和下一篇介紹vuex,決定還是來(lái)一個(gè)實(shí)戰(zhàn)教程來(lái)帶大家更加的去深入理解vue-router,在這之前,讀者先自行了解和去官網(wǎng)下載npm和node,附:npm官網(wǎng) 項(xiàng)目構(gòu)建 這里我采用vue-cli+web...
摘要:的核心庫(kù)只關(guān)注視圖層,并且非常容易學(xué)習(xí),非常容易與其它庫(kù)或已有項(xiàng)目整合。的目標(biāo)是通過(guò)盡可能簡(jiǎn)單的實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。并不是框架,只是和他旁邊的生態(tài)環(huán)境組成了一個(gè)框架,下面,貼一個(gè)官方的漸進(jìn)式框架介紹圖吧,方便理解。 前言 本人學(xué)習(xí)了一段時(shí)間的vue,并嘗試寫了一些小Demo之后,將vue投入了幾個(gè)項(xiàng)目之后,一直在邊學(xué)習(xí)邊使用,經(jīng)過(guò)看了vue,vuex,vue-route...
摘要:的核心庫(kù)只關(guān)注視圖層,并且非常容易學(xué)習(xí),非常容易與其它庫(kù)或已有項(xiàng)目整合。的目標(biāo)是通過(guò)盡可能簡(jiǎn)單的實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。并不是框架,只是和他旁邊的生態(tài)環(huán)境組成了一個(gè)框架,下面,貼一個(gè)官方的漸進(jìn)式框架介紹圖吧,方便理解。 前言 本人學(xué)習(xí)了一段時(shí)間的vue,并嘗試寫了一些小Demo之后,將vue投入了幾個(gè)項(xiàng)目之后,一直在邊學(xué)習(xí)邊使用,經(jīng)過(guò)看了vue,vuex,vue-route...
摘要:路由模塊的本質(zhì)就是建立起和頁(yè)面之間的映射關(guān)系。這時(shí)候我們可以直接利用傳值了使用來(lái)匹配路由,然后通過(guò)來(lái)傳遞參數(shù)跳轉(zhuǎn)對(duì)應(yīng)路由配置于是我們可以獲取參數(shù)六配置子路由二級(jí)路由實(shí)際生活中的應(yīng)用界面,通常由多層嵌套的組件組合而成。 一、前言 要學(xué)習(xí)vue-router就要先知道這里的路由是什么?為什么我們不能像原來(lái)一樣直接用標(biāo)簽編寫鏈接哪?vue-router如何使用?常見(jiàn)路由操作有哪些?等等這些問(wèn)...
閱讀 2573·2021-09-02 15:40
閱讀 1578·2019-08-30 15:54
閱讀 1094·2019-08-30 12:48
閱讀 3411·2019-08-29 17:23
閱讀 1057·2019-08-28 18:04
閱讀 3675·2019-08-26 13:54
閱讀 618·2019-08-26 11:40
閱讀 2408·2019-08-26 10:15