国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解vue路由篇(動態(tài)路由、路由嵌套)

2019-11-19 12:13:28
字體:
來源:轉載
供稿:網友

什么是路由?網絡原理中,路由指的是根據(jù)上一接口的數(shù)據(jù)包中的IP地址,查詢路由表轉發(fā)到另一個接口,它決定的是一個端到端的網絡路徑。

web中,路由的概念也是類似,根據(jù)URL來將請求分配到指定的一個'端'。(即根據(jù)網址找到能處理這個URL的程序或模塊)
使用vue.js構建項目,vue.js本身就可以通過組合組件來組成應用程序;當引入vue-router后,我們需要處理的是將組件(components)映射到路由(routes),然后在需要的地方進行使用渲染。

一、基礎路由

1、創(chuàng)建vue項目,執(zhí)行vue init webpack projectName命令,默認安裝vue-router。項目創(chuàng)建后,在主組件App.vue中的HTML部分:

<template> <div id="app">  <router-view/> </div></template>

上述代碼中,<router-view/>是路由出口,路由匹配到的組件將渲染在這里。

2、文件router/index.js中:

import Vue from 'vue' // 導入vue插件import Router from 'vue-router' // 導入vue-routerimport HelloWorld from '@/components/HelloWorld' // 導入HelloWorld組件Vue.use(Router) // 引入vue-routerexport default new Router({ routes: [  {   path: '/', // 匹配路由的根路徑   name: 'HelloWorld',   component: HelloWorld  } ]})

以上代碼比較簡單,一般的導入、引用操作,其中Vue.use()具體什么作用?

個人理解:Vue.use(plugin, arguments)就是執(zhí)行一個plugin函數(shù),或執(zhí)行plugin的install方法進行插件注冊(如果plugin是一個函數(shù),則執(zhí)行;若是一個插件,則執(zhí)行plugin的install方法...);并向plugin或其install方法傳入Vue對象作為第一個參數(shù);如果有多個參數(shù),use的其它參數(shù)作為plugin或install的其它參數(shù)。(具體需要分析源碼,在此不再過多解釋)

二、動態(tài)路由

什么是動態(tài)路由?動態(tài)路由是指路由器能夠自動的建立自己的路由表,并且能夠根據(jù)實際情況的變化實時地進行調整。

1、在vue項目中,使用vue-router如果進行不傳遞參數(shù)的路由模式,則稱為靜態(tài)路由;如果能夠傳遞參數(shù),對應的路由數(shù)量是不確定的,此時的路由稱為動態(tài)路由。動態(tài)路由,是以冒號為開頭的(:),例子如下:

export default new Router({ routes: [  {   path: '/',   name: 'HelloWorld',   component: HelloWorld  }, {   path: '/RouterComponents/:id',   name: 'RouterComponents',   component: RouterComponents  } ]})

2、路由跳轉,執(zhí)行方式有兩大類;

第一大類:router-link模式,直接把參數(shù)寫在to屬性里面:

<router-link :to="{name:'RouterComponents',params:{id:110}}">跳轉</router-link>

第二大類:$router.push()模式,代碼如下:

methods: {  changeFuc (val) {   this.$router.push({    name: 'RouterComponents',    params: {id: val}   })  }}

或者:

methods: {  changeFuc (val) {   this.$router.push({    path: `/RouterComponents/${val}`,   })  }}

三、嵌套路由

vue項目中,界面通常由多個嵌套的組件構成;同理,URL中的動態(tài)路由也可以按照某種結構對應嵌套的各層組件:

export default new Router({ routes: [  {   path: '/', // 根路由   name: 'HelloWorld',   component: HelloWorld  }, {   path: '/RouterComponents/:id',   component: RouterComponents,   children: [    {     path: '', // 默認路由     name: 'ComponentA', // 當匹配上RouterComponents后,默認展示在<router-view>中     component: ComponentA    },    {     path: '/ComponentB',     name: 'ComponentB',     component: ComponentB    },   ]  } ]})

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 枣庄市| 区。| 西贡区| 甘南县| 墨玉县| 双城市| 定日县| 义马市| 海晏县| 江山市| 德保县| 延川县| 星座| 平乡县| 临江市| 高淳县| 大余县| 云和县| 高邮市| 崇文区| 临江市| 宾阳县| 手游| 江油市| 河曲县| 会昌县| 北流市| 清苑县| 桐柏县| 汉源县| 翁牛特旗| 志丹县| 湘西| 沈阳市| 分宜县| 张家港市| 贺兰县| 溧水县| 孝昌县| 上饶县| 措勤县|