国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

vue-router路由與頁面間導(dǎo)航實例解析

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:26:06
文檔

vue-router路由與頁面間導(dǎo)航實例解析

vue-router路由與頁面間導(dǎo)航實例解析:vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用。vue的單頁面應(yīng)用是基于路由和組件的,路由用于設(shè)定訪問路徑,并將路徑和組件映射起來。傳統(tǒng)的頁面應(yīng)用,是用一些超鏈接來實現(xiàn)頁面切換和跳轉(zhuǎn)的。在vue-router
推薦度:
導(dǎo)讀vue-router路由與頁面間導(dǎo)航實例解析:vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用。vue的單頁面應(yīng)用是基于路由和組件的,路由用于設(shè)定訪問路徑,并將路徑和組件映射起來。傳統(tǒng)的頁面應(yīng)用,是用一些超鏈接來實現(xiàn)頁面切換和跳轉(zhuǎn)的。在vue-router

vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用。vue的單頁面應(yīng)用是基于路由和組件的,路由用于設(shè)定訪問路徑,并將路徑和組件映射起來。傳統(tǒng)的頁面應(yīng)用,是用一些超鏈接來實現(xiàn)頁面切換和跳轉(zhuǎn)的。在vue-router單頁面應(yīng)用中,則是路徑之間的切換,也就是組件的切換。

vue-router

我們知道路由定義了一系列訪問的地址規(guī)則,路由引擎根據(jù)這些規(guī)則匹配找到對應(yīng)的處理頁面,然后將請求轉(zhuǎn)發(fā)給頁進行處理??梢哉f所有的后端開發(fā)都是這樣做的,而前端路由是不存在"請求"一說的。

前端路由是找到地址匹配的一個組件或者對象將其渲染出來。改變?yōu)g覽器地址不向服務(wù)器發(fā)送請求有兩種方法,

一是在地址中加入#以欺騙瀏覽器,地址的改變是由于正在進行頁內(nèi)導(dǎo)航;二是使用HTML5的window.history功能,使用URL的hash來模擬一個完整的URL。

vue-router是官方提供的一套專用的路由工具庫,是vue的一個插件,我們需要在全局引用中通過vue.use()將它引入到vue實例中,

使用vue-cli創(chuàng)建項目后(init初始化時vue-router確認(rèn)y)

我們先來看一下項目src的結(jié)構(gòu),通過cmd進入到項目src目錄下,執(zhí)行 tree -f > list.txt 生成結(jié)構(gòu)樹(保存在list.txt中):

結(jié)構(gòu)如下:

src
├─assets // 靜態(tài)資源
│ └─image // 圖片
│ 
├─components // 組件 
│ └─HelloWorld
│ HelloWorld.vue
│ 
└─router // 路由配置
│ └─index.js
│ 
│ App.vue // 默認(rèn)程序入口
│ main.js
│ 

1、打開main.js:

import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
 el: '#app',
 router, 
 render: h => h(App) 
})

第10行將配置的路由綁定到vue實例上,第11行在vue實例中使用render方法來繪制這個vue組件(App)完成初始化

Render是vue2新增的具有特色的方法,為了得到更好的運行速度,vue2也采用的類似react的Virtual Dom(虛擬Dom)

 2、然后我們在components中注冊幾個組件

3、打開router/index.js配置路由

import Vue from 'vue'
import Router from 'vue-router'
import Singer from '@/components/rank/rank'
Vue.use(Router) // 注冊router
export default new Router({
 routes: [
 {
 path: '/',
 name: 'Hello',
 component: MHeader // 路由中指定組件
 },
 {
 path: '/rank',
 name: 'rank',
 component: Rank
 }
 ]
})

路由的模式

關(guān)鍵詞:"mode","history模式","hash模式","Abstract模式"

我們可以在創(chuàng)建的Router中使用模式,如參數(shù)mode:history的參數(shù),這個值意思是使用history模式,這種模式充分利用了history.pushState API來完成URL的跳轉(zhuǎn)而無需重新加載頁面 ,

如果不使用history模式,當(dāng)訪問rank的時候路由就會變成:

http://localhost/#rank

反之為:

http://localhost/rank

這就是history模式和hash模式的區(qū)別,除此之外還有一種abstract模式

  • Hash:使用URL hash值作為路由,
  • History:依賴HTML5 History API和服務(wù)器配置
  • Abstract:支持所有JavaScript運行環(huán)境,如node服務(wù)器端。如果發(fā)現(xiàn)沒有瀏覽器的API,路由就會強制進入這個模式
  • 路由與導(dǎo)航

    關(guān)鍵詞:"router-link" , "router-view"

    vue-router提供兩個指令標(biāo)簽組件來處理這個導(dǎo)航與自動渲染邏輯:

  • <router-view>——渲染路徑匹配到的組件視圖,
  • <router-link>——支持用戶在具有路由功能的應(yīng)用中導(dǎo)航
  • 我們使用整兩個標(biāo)簽組件來完成一個簡單的頁面布局:

    在路由使用時要明確一個原則就是:不直接引用路由定義,(即不要在router-link直接通過 to='conpontents/rank/rank' 來導(dǎo)向路由),當(dāng)顯式引用路由定義的URL一旦發(fā)生變化,所有引用的地方都要修改。

    在router-link通過名稱引用路由:向to屬性傳入一個對象顯式的聲明路由的名稱:

    <router-link :to="{ name:'rank' }">

    這里留意使用v-bind綁定(簡寫:),因為這里需要向router-link傳遞的是一個對象{ name:'rank' }而不是一個字符串

    動態(tài)路由

    關(guān)鍵詞:"動態(tài)路由參數(shù)","params","$router.params"

    vue-router將參數(shù)融入到路由的路徑定義之內(nèi)成為路由的一部分,我們稱這種參數(shù)為"動態(tài)路徑參數(shù)";

    使用非常簡單,在參數(shù)名之前加上":",然后將參數(shù)寫在路由定義的path內(nèi),

     routers:[{
     name:'BookDetails',
     path:'books/:id',
     component:BookDetails 
     }]

    1、這樣定義之后,vue-router就會自動匹配/books/1、/books/2、...、/books/n 形式的路由模式,因為這樣定義的路由的數(shù)量是不確定的,所以也稱為"動態(tài)路由"。

    2、在<router-link>中我們就可以加入一個params的屬性來指定具體的參數(shù)值:

     <router-link :to="{ name:'BookDetails',params:{ id:1 } }">
     //...
     </router-link>

    3、當(dāng)我們導(dǎo)航進入圖書詳情頁之后,我們可能需要獲取屬性指定的參數(shù)值(即重新將:id參數(shù)讀取出來),我們可以通過$router.params來完成:

     export default {
     created () {
     const bookID = this.$router.params.id
     }
     }

    嵌套式路由

    關(guān)鍵詞:"children",

    我們利用下面的場景,首頁/home/讀書詳情 頁面,讀書詳情也我們不需要底部的導(dǎo)航區(qū)域,但是我們使用之前的路由定義,所有的頁面都應(yīng)該具有想用的底部導(dǎo)航條,按前面的路由結(jié)構(gòu)是不可以導(dǎo)航到圖書詳情頁的,如下:

    所以我們就需要另一種定義路由的方式,對前面的路由進行調(diào)整,

    嵌套式路由又叫做子路由,要將路由顯示到子視圖中就要相應(yīng)的子路由與之對應(yīng),我們只需要在路由定義中使用children數(shù)組屬性就可以定義子路由了:

    routers:[
     { 
     name:'Main',
     path:'/',
     component:Main,
     children:[
     { name:'Home',path:'home',component:Home }
     { name:'Me',path:'me',component:Me }
     ] 
     },
     { name:'BookDetail',path:'/books/:id',component:BookDetail } 
    ]

    需要注意的是以"/"開頭的嵌套路徑會被當(dāng)做根路徑,所以不要在子路由上加上"/";

    重定向路由與別名

    關(guān)鍵詞:"redirect","alias"

    重定向也是通過 routes 配置來完成,下面例子是從 /a 重定向到 /b:

     routes: [
     { path: '/a', redirect: '/b' }
     ]
    // 重定向的目標(biāo)也可以是一個命名的路由
     routes: [
     { path: '/a', redirect: { name: 'foo' }}
     ]

    另外我們需要區(qū)別重定向和別名,『重定向』的意思是,當(dāng)用戶訪問 /a時,URL 將會被替換成 /b,然后匹配路由為 /b,那么『別名』又是什么呢?

    /a 的別名是 /b,意味著,當(dāng)用戶訪問 /b 時,URL 會保持為 /b,但是路由匹配則為 /a,就像用戶訪問 /a 一樣:

    利用alias給路由設(shè)置別名

     routes: [
     { path: '/a', component: A, alias: '/b' }
     ]

    總結(jié)

    到這里vue路由的基礎(chǔ)我們已經(jīng)總結(jié)完畢,我們需要在實戰(zhàn)中不斷練習(xí),多多的去解決問題,方能更好的使用路由 幫我們完成任務(wù),同時為vue進階的路由知識打基礎(chǔ)

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    vue-router路由與頁面間導(dǎo)航實例解析

    vue-router路由與頁面間導(dǎo)航實例解析:vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用。vue的單頁面應(yīng)用是基于路由和組件的,路由用于設(shè)定訪問路徑,并將路徑和組件映射起來。傳統(tǒng)的頁面應(yīng)用,是用一些超鏈接來實現(xiàn)頁面切換和跳轉(zhuǎn)的。在vue-router
    推薦度:
    標(biāo)簽: 導(dǎo)航 VUE 頁面
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 日韩在线视频线视频免费网站 | 美女视频黄a视频全免费网站一区 | 亚洲 欧洲 另类 综合 自拍 | 日本欧美韩国专区 | 亚洲精品国产成人99久久 | 欧美xx在线 | 国产精品观看 | 一级毛片特黄久久免费看 | 欧美亚洲国产一区二区 | 久久精品无遮挡一级毛片 | 成人久久久| 在线观看国产精品入口 | 欧美日韩有码 | 欧美第一页在线观看 | 五月天婷婷视频在线观看 | 91精品一区二区三区久久久久 | 欧美一区二区日韩一区二区 | 国产成人久久777777 | 久久久久久久一精品 | 四虎精品永久在线 | 91av一区| 精品伊人久久大线蕉色首页 | 国产精品免费视频能看 | 国产在线精品观看 | 久久精品a亚洲国产v高清不卡 | 欧美国产中文 | 欧美精品一区二区在线观看播放 | 中日韩欧美在线观看 | 国产在线观看网站 | 中文字幕有码在线播放 | 久久精品一区 | 国产精品一区二区久久精品 | 91精品欧美一区二区三区 | 亚洲精品免费观看 | 欧美成人看片一区二区三区尤物 | 亚洲码欧美码一区二区三区 | 日韩最新视频一区二区三 | 国产精品亚洲欧美一区麻豆 | 国产肉丝 | 欧美另类图片亚洲偷 | 欧美第一夜 |