『壹』 路由的配置
進去全局配置模式,定義目標網路號,目標網路的子網掩碼和下一跳地址或介面
Router(config)#ip route {nexthop-address|exit-interface} [distance]
Router(config)#ip route network [mask] {address | interface} [distance] [permantet]
目標網路掩碼到達目標網路的下一個路由器地址或本地介面
默認路由是靜態路由的一種,是指當路由表中與包的目標地址之間沒有匹配的表項時路由器能夠作出的選擇
Router(config)#ip route 0.0.0.0 0.0.0.0 下一個路由器的介面地址
Router(config)#ip classless
其中 0.0.0.0 0.0.0.0 代表將發往任何網路的包都轉發到下一個路由器介面地址
Ip classless 指路由器接收到不能轉發的包的時候會將其匹配給默認路由
並且返回目標地址不可達的 ICMP的消息 常見動態路由分為距離矢量路由協議(DistanceVector Routing Protocol)和鏈路狀態路由協議(Link-State Routing Protocol)。
動態路由是網路中的路由器之間相互通信,傳遞路由信息,利用收到的路由信息更新路由器表的過程。它能實時地適應網路結構的變化。如果路由更新信息表明發生了網路變化,路由選擇軟體就會重新計算路由,並發出新的路由更新信息。這些信息通過各個網路,引起各路由器重新啟動其路由演算法,並更新各自的路由表以動態地反映網路拓撲變化。動態路由適用於網路規模大、網路拓撲復雜的網路。當然,各種動態路由協議會不同程度地佔用網路帶寬和CPU資源。
距離矢量路由協議包括RIP,EIGRP,IGRP
鏈路狀態路由協議包括OSPF,ISIS
RIP
RIP是Internet中常用的路由協議,路由器根據距離選擇路由,路由器收集所有可到達目的地的不同路徑,並且保存有關到達每個目的地的最少站點數的路徑信息,除到達目的地的最佳路徑外,任何其它信息均予以丟棄。同時路由器也把所收集的路由信息用RIP協議通知相鄰的其它路由器。這樣,正確的路由信息逐漸擴散到了全網。
RIP 有兩個不同的版本,RIPv1和RIPv2. RIPv1。
RIPv1和RIPv2. RIPv1 的主要區別:
1.RIPv1是有類路由協議,RIPv2是無類路由協議
2.RIPv1不能支持VLSM,RIPv2可以支持VLSM
3.RIPv1沒有認證的功能,RIPv2可以支持認證,並且有明文和MD5兩種認證
4.RIPv1沒有手工匯總的功能,RIPv2可以在關閉自動匯總的前提下,進行手工匯總
5.RIPv1是廣播更新,RIPv2是組播更新,
6.RIPv1對路由沒有標記的功能,RIPv2可以對路由打標記(tag),用於過濾和做策略
7.RIPv1發送的updata最多可以攜帶25條路由條目,RIPv2在有認證的情況下最多隻能攜帶24條路由
8.RIPv1發送的updata包裡面沒有next-hop屬性,RIPv2有next-hop屬性,可以用與路由更新的重定
RIPv1的配置;
Router(config)#routerrip
Router(config-router)#network xxxx.xxxx.xxxx.xxxx
RIPv2的配置
Router(config)#router rip
Router(config-router)#version2
Router(config-router)#no auto-summary
RIP使用非常廣泛,它簡單、可靠,便於配置。但是RIP只適用於小型的同構網路,因為它允許的最大站點數為15,任何超過15個站點的目的地均被標記為不可達。而且RIP每隔30s一次的路由信息廣播也是造成網路的廣播風暴的重要原因之一。
EIGRP
EIGRP是思科私有的,他是高級距離矢量路由協議,使用DUAL演算法。EIGRP是建立鄰居關系最快的路由協議
EIGRP的5個Metric值:帶寬(Bandwidth),負載(Load),延遲(Delay),可靠性(Reliability),MTU
配置:
Router(config)#router eigrp XX
Router(config-router)#noauto-summary
OSPF
OSPF是一種基於鏈路狀態的路由協議,需要每個路由器向其同一管理域的所有其它路由器發送鏈路狀態廣播信息。在OSPF的鏈路狀態廣播中包括所有介面信息、所有的量度和其它一些變數。利用OSPF的路由器首先必須收集有關的鏈路狀態信息,並根據一定的演算法計算出到每個節點的最短路徑。而基於距離向量的路由協議僅向其鄰接路由器發送有關路由更新信息。
配置:
Router(config)#router ospf XX
Router(config-router)#router-idX.X.X.X
Router(config-router)#networkXXXX.XXXX.XXXX.XXXXarea X
OSPF將一個自治域再劃分為區,相應地即有兩種類型的路由選擇方式:當源和目的地在同一區時,採用區內路由選擇;當源和目的地在不同區時,則採用區間路由選擇。這就大大減少了網路開銷,並增加了網路的穩定性。當一個區內的路由器出了故障時並不影響自治域內其它區路由器的正常工作,這也給網路的管理、維護帶來方便。
靜態路由和動態路由有各自的特點和適用范圍,因此在網路中動態路由通常作為靜態路由的補充。當一個分組在路由器中進行尋徑時,路由器首先查找靜態路由,如果查到則根據相應的靜態路由轉發分組;否則再查找動態路由
『貳』 能自動生成不需要配置的路由是什麼
vue 根據菜單自動生成路由(動態配置前端路由)
3.到main.js中
4.先把菜單組件寫好,到menu.vue中
5.注冊全局組件
6.到router文件夾寫好路由模塊
7.容器頁和載入頁
8.寫篩選菜單和路由的方法
9. 登錄成功後生成路由
6.1 base-router.js中寫好我們需要的固定的路由
6.2 lm-router.js中寫動態配置路由的方法
6.3 index.js中寫路由入口
7.1 layout.vue
7.2 loading.vue
1.創建項目
2.新建文件
- 在需要許可權控制的頁面,往往存在根據用戶來顯示菜單的情況,單獨根據用戶類型判斷顯然不是很好,如果後面用戶類型發生變化,項目修改維護可能就會比較麻煩,所以比較好的做法是根據後端返回的菜單動態生成頁面路由,以達到完全許可權控制的目的,並且若許可權發生變化,僅需該配置數據即可
- // 公共函數模塊,用import引用// 根據日期時間值獲取字元串各是日期import Layout from '../views/layout/layout'//獲取並篩選菜單export const getAndFilterMenus=(menus)=> {
- // console.log(menus)
- menus=hanldeChildAppRoute(menus)
- for(let i=0;i<menus.length;i++){
- delete menus[i].component //只有leLeftMeu=1的是菜單
- if(!parseInt(menus[i].isLeftMenu)){
- menus.splice(i,1)
- i--
- }
- if(menus[i] && menus[i].children){
- getAndFilterMenus(menus[i].children)
- }
- }
1.創建項目
首先用vue-cli3創建好項目
2.新建文件
創建好項目後,新建我們需要的文件。結構如圖
『叄』 120由淺入深學網路--靜態路由與動態路由
我們在 VLAN 的實驗中學習到 VLAN 能夠很好的隔離網路,減小廣播域,但是隔離了網路的廣播域也就意味著它們將處於不同的網路之中,這樣僅僅依靠數據鏈路層的幀是無法相互通信的。所以若是我們需要 VLAN 間能夠相互通信就必須得依靠網路的第三層網路層,通過路由的功能來連接兩個不同網路使之相互通信。
使兩個 VLAN 相互通信我們稱之為 VLAN 間的路由,而實現這一功能的方法有兩個:
單臂路由
SVI 介面
單臂路由(one-armed router 或者 router-on-a-stick)是指在路由器的一個介面上通過配置子介面(或「邏輯介面」,並不存在真正物理介面)的方式,實現原來相互隔離的不同 VLAN(虛擬區域網)之間的互聯互通。
單臂路由就是依靠的路由器的路由功能,因為二層交換機沒有辦法實現路由。同時一個介面只能接收來自一個 VLAN 的數據(因為一個介面不能隸屬於多個 VLAN),傳統的 VLAN 間路由方式便是在 Switch 與 Router 之間連接多個埠以保證多個接收多個 VLAN 的數據,但是當 VLAN 很多的情況下,Router 不可能滿足這么多埠,所以出現了子埠的實現,這是一種依靠軟體實現的邏輯上的埠。這樣便只需要通過一根物理連接線來實現多個 VLAN 介面的連接。
我們通過這樣的一個實驗來實現單臂路由的功能:
實驗目的:配置實現單臂路由
實驗材料:三台交換機、一台路由器
實驗方法:
拖動三台交換機、一台路由器至畫布,兩台用作模擬PC,一台用所模擬 Switch,一台用作 Router
配置路由器、交換機的名字與連接線路
配置交換機中的 vlan,以及三個介面的模式
配置兩台 PC 的 IP 地址與默認網關(下文詳解),他們處於不同的 VLAN 中
配置路由器的子介面,以及子介面的 IP 地址
嘗試使用 PC 相互 ping 通
1.構建實驗環境,在畫布中拖出三台交換機與一台路由器,並修改他們的設備名稱,同時修改兩台用作模擬 PC 的交換機圖標,然後相互連接。結構如圖所示:
2.配置交換機相關的內容,在 Switch1 中配置兩個 VLAN,分別為 vlan 2:test2、vlan 3:test3。同時將與 PC 連接的兩個埠分別配置為 access vlan 2 與 access vlan 3,還有與路由器相連接的埠配置為 trunk 模式。若是與路由器相連接的埠不配置成 trunk 模式將無法發送多個 vlan 的數據包。
3.修改 PC 埠的 IP 地址
此時我們可以嘗試通過 PC1 去 ping PC2,我們會發現肯定是 ping 不通的,因為他們處於不同的網段同時處於不同的 VLAN 中。
3.為兩台 PC 配置默認網關(默認網關用於將數據包發送至路由埠,下文詳解)
可用回到特權模式中,通過 show ip route 查看,是否成功配置:
4.在路由器中配置邏輯子介面,分別用於接收 vlan2 與 vlan3 的數據。因為是接收來自交換機發來的信息,所以該子介面的數據封裝模式與交換機中的相同,交換機此處 trunk 模式使用的是 dot1q 的封裝方法,所以子介面中的也必須是這個方法。(還記得在 VLAN 劃分實驗中我們將到 trunk 模式主要作用是添加 VLAN 標簽)
這樣我們就成功的配置好了我們的子埠,我們可以通過 show ip int brief 查看介面信息中是否有這兩個子介面的配置,還可以通過 show vlans 查看子介面的狀態,以及通過 show ip route 命令來查看當前的路由信息,若是有兩個直連路由表項,說明我們配置成功的生效了:
5.完成了所有的配置,准備工作,我們再次嘗試通過使用 PC1 去 Ping PC2 發現 5個點都變成了感嘆號,表示所有的 ICMP 包(ping 工具使用的是 ICMP 協議)都得到了響應,PC1 可以與 PC2 正常通信了:
由上述的兩個原因,為此出現了一種新的功能,便是在三層交換上的 SVI 介面,這樣便不需要單獨添加一台路由器了。
SVI 是 Switch Virtual Interface 的簡稱。它是三層交換機上的一個虛擬埠,類似於 Router 上的子埠,由軟體實現。每個 SVI 只能關聯一個 VLAN,設置一個 IP 地址。
基於上個實驗,我們做出這樣的修改:
去除 Router 設備
設置 SVI 介面地址
我們將去除 Router 設備,由我們的三層交換機來實現相關的功能,將之前的網關地址設置為 SVI 的 IP 地址即可
1.去除 Router 設備,關閉 Switch 上的 e0/0 介面,同時配置 SVI 的 IP 地址:
如此便完成了 SVI 的配置,我們可以在 Switch 的特權模式中使用 show ip route 可以看到此時我們有兩個直連的路由信息。同時我們還可以嘗試使用 PC1 去 ping PC2。(若是配置與我完全一致,但是 ping 不通,可以嘗試在 Switch 的全局模式中使用 no ip cef 命令)
此處使用 no ip cef 命令關閉轉發機制便是該版本的鏡像並沒有很好的在 Linux 中實現其提供的功能,可能該鏡像的設備本是使用硬體輔助實現該功能等等。若是不關閉 cef 的轉發機制,將導致你明明配置無誤,卻無法正常的通信。
由此我們便成功的配置了單臂路由與 SVI 介面來成功的實現 VLAN 之間的相互通信了。
在之前的實驗中我們經常提到默認網關之一名詞,接下來我們便來了解一下該名詞的含義。
默認網關由兩個片語成默認與網關。其中什麼叫做網關呢?
網關(Gateway)就是一個網路與另一個網路連接的關口。
比如成都市與廣州市都只有一個郵局,而每個郵局前都會有一個專職的負責人,此時若是成都市的小明想與廣州市的小紅聯系只能通過這樣的一個過程:
首先將寫好的信交給郵局的專職負責人,
郵局的專職負責人查看信封上的地址,發現該地址並不是本省中的地址,並且郵編寫的是廣東省的地址。
成都的郵局專職負責人便將該消息轉發送給廣州的郵局專職負責人,讓他交給收件人
廣州的郵局專職負責人收到信封後,發現目的地址便是本省中的地址,便尋找該地址將消息送到收件人的手中。
在這個例子中郵局的專職負責人便是網關。負責將本網段中的消息發送給其他網段的網關的介面。
默認網關的意思是一台主機如果找不到可用的網關,就把數據包發給默認指定的網關,由這個網關來處理數據包。只要指定了默認網關之後,只要主機在發送數據包之前由目的地址與其子網掩碼做 AND 運算得出的網路號與本機的網路號不同,便將數據發送給默認網關,由默認網關處理數據該如何發送。
在全局模式中我們可以通過這樣的命令來實現默認網關的配置:
通過 show ip route 我們可以看到這樣的結果:
我們了解到數據包發送到其他網段是通過查詢路由表,然後決定下一跳發送的路徑。而路由表中的表項是如何得來的呢?
首先以路由的角度將協議分為:
可路由協議(Routed Protocol):利用網路層完成通信的協議,例如 IP、IPX 等,該對象是被路由的。
路由協議(Routing Protocol):主要用於創建與維護路由表,本質是實現路由功能,該對象是路由其他對象的,例如 RIP、OSPF、IGRP、IS-IS 等等。
而路由表中的信息分為兩大類:
直連路由:也就是該設備中的介面所配置的 IP 地址與其所處的網路
遠程路由:也就是發向其他路由設備所處的 IP 地址與其所處的網路
直連路由是在 IP 介面地址配置後便自動添加的,而遠程路由的信息來源又會分為兩大類:
靜態路由:由人工配置的下一跳地址,在網路拓撲發生變化時同樣需要人工修改,但是配置完成之後並不會佔用過多的系統資源,與網路的帶寬。在靜態路由中有預設路由(也就是默認路由)、浮動路由的存在。適用於小型網路與末梢網路
動態路由:通過動態路由協議,設備與設備之間相互通信,相互學習。再由某種路由演算法計算出下一跳的路徑,當有多條路徑的時候還有優先順序的排序,並且在網路拓撲發生變化的時候,會自動學習網路中的變化適當改變路徑,適用於大型網路。
其中動態路由協議有這樣幾種分類的標准:
按演算法分為:距離矢量(典型的協議有 RIP、IGRP、BGP)、鏈路狀態(典型的協議有 OSPF IS-IS)、混合演算法(典型的協議有 EIGRP)
按照是否發送子網掩碼分為:有類(典型的有 RIP、IGRP)與無類(支持子網劃分與路由匯總,典型的有 OSPF 等)
按照使用的網路規模分為:IGP(Interior gateway protocol),內部網關協議,幾乎所有的路由協議都屬於內部網關協議)與 EGP(Exterior Gateway Protocol),外部網關協議,BGP 用於自治系統之間的路由計算)
其中按照演算法分的距離矢量表示的是根據源到目的的跳數來計算(之前有提過,下一跳錶示去往下一個路由);所謂的鏈路狀態便是多方面考慮如鏈路的開銷、鏈路上的所有的相鄰路由器、網路帶寬,網路擁塞等等綜合考慮;所謂的混合演算法便是這兩個的結合考慮。
其中的自治系統是表示屬於某一個特定的網路機構中路由集合。在自治系統內部使用的路由協議就是內部網關協議,而自治系統之間的是外部網關協議。
反應路由性能的參考對象主要還是收斂時間與管理距離(在上一節實驗我們都提到過):
收斂時間(convergence time):從網路拓撲變化到網路中所有的路由器都知道這個變化的時間就叫收斂時間;
管理距離(administrative distance):用於綜合評價路由協議性能參數,描述路由協議計算路由條目的准確度與可信度。
所謂的靜態路由便是由純手工的配置在路由表項中,這樣的配置路由方式非常的耗時,效率不高,並且在網路拓撲發生改變的時候需要手工的一項一項的修改,十分的麻煩,事情總是利弊雙面的,有弊就有利,雖然麻煩但是就因為不會自動學習修改所以不會發送通告佔用帶寬,也不會佔用太多的 CPU 與 RAM 這樣的系統資源。並且可以手工控制數據包的轉發路徑,因此靜態路由在小型企業中還是十分常用。
靜態路由的配置很簡單,只需要通過這樣的一條命令即可:
我們可以通過這樣的例子來學習靜態路由的配置:
還是使用上述 SVI 的實驗環境,我們在 Switch 上添加一個路由,並且配置為 202.203.0.0 這個網段下:
此時 PC 肯定是無法 ping 通 202.203.0.2 地址的,因為雖然在 Switch 中有該網段的路由表項(因為是直連網段),但是數據包在 Router 接收到之後,響應時發現路由表中無 192.168.1.0 網段表項,不知道怎麼轉發回來,便只有丟棄該數據包了。
通過 show ip route 我們可以看到靜態路由成功的添加了:
並且此時可以 ping 通對端的 IP 地址:
這只是一條記錄,並且只是 192.168.1.0 網段可以 ping 通,若是 PC2 去 ping 還是會不通,因為 PC2 在 192.168.2.0 網段,路由表中沒有可以匹配的項。此時我們發現所有的地址都會通過 Switch,基本設備都是圍繞它來的,他知道所有的路由路徑,我便可以直接設置一個默認路由,也就是只要路由表中沒有目的地址所匹配的表項,就都丟給默認路由。
既然如此也就代表著默認路由要匹配所有項,因為表中一旦無匹配就讓他路由,換個角度就代表他得匹配所有項,而匹配所有項的地址便是 0.0.0.0,同時子網掩碼也是這個值。因為 0 表示的是任意的(wildcard)
默認路由就是一種特殊的靜態路由,所以若是要配置默認路由只需要將上述的命令中的目的地址與子網掩碼改成 0.0.0.0 0.0.0.0 即可。
我們可以在剛剛的環境中實驗一次,先擦除原先的靜態路由然後再配置:
這就是便是默認路由只要路由表中沒有匹配的項就讓它來路由。
當然按照我們之前所說的冗餘思想,避免單點故障使得一個數據包到達目的地可能有多條路徑,此時我們便可以配置浮動路由,所謂的浮動路由便是當優先順序較高的路徑出現問題時,還有一條路徑能夠及時的替補上來。而優先順序的體現在於我們上節實驗中所提到的 AD,當值越小的時候其優先順序便越高。
浮動路由的配置很簡單,就是在添加備選路徑時,把靜態路由命令的網關地址修改以及後面添加 AD 值,該值的取值范圍是 0~255。例如:
但是三層交換機並不支持浮動路由,需要路由器才能實現。
在畫布中拖動兩台路由器,實現這樣的拓撲結構,同時配置浮動路由使得在一條線路斷掉時,還是可以工作。(需要藉助環回介面,在全局模式中 int loopback 0(這個為編號,自取) 便可以像配置埠一般為其配置 IP 地址了)
驗證方式:
首先查看路由表中的靜態路由是 192.168.1.2,並且能夠 Router 設備能夠 ping 通 202.204.1.1
然後 shutdown s2/0 埠,再次 ping 202.204.1.1 還是能通,並且此時的路由表的靜態路由項發生變化
注意:此處使用的兩個都是串口,因為 GNS3 的路由串口實現沒有問題,浮動路由只需要一個埠斷開,另外一邊不通就知道斷開了便啟用浮動路由。但是若是使用的以太口,GNS3 實現出來與真實設備不同,不同之處在 GNS3 用以太口實現的話檢測不出對端斷開了,必須同時斷開此埠與對端埠才行,所以此處使用串口。
『肆』 Vue實現動態路由
通常我們在vue項目中都是前端配置好路由的,但在一些項目中我們可能會遇到許可權控制,這樣我們就涉及到 動態路由 的設置了。
動態路由設置一般有兩種 :
(1)、簡單的角色路由設置:比如只涉及到管理員和普通用戶的許可權。通常直接在前端進行簡單的角色許可權設置
(2)、復雜的路由許可權設置:比如OA系統、多種角色的許可權配置。通常需要後端返迴路由列表,前端渲染使用
到這里,整個動態路由就可以走通了,但是頁面跳轉、路由守衛處理是非同步的,會存在動態路由添加後跳轉的是空白頁面,這是因為路由在執行next()時,router裡面的數據還不存在,此時,你可以通過window.location.reload()來刷新路由
後端返回的路由格式:
注意: vue是單頁面應用程序,所以頁面一刷新數據部分數據也會跟著丟失,所以我們需要將store中的數據存儲到本地,才能保證路由不丟失。關於vue頁面刷新保存頁面狀態,可以查看 vue如何在頁面刷新時保留狀態信息
『伍』 怎麼配置路由ip route
Router0:配置
Router0>en
Router0#conft
Router0(config)#intf0/0
Router0(config-if)#ipadd192.168.1.254255.255.255.0
Router0(config-if)#nosh
Router0(config-if)#intf0/1
Router0(config-if)#ipadd172.139.23.1255.255.255.0
Router0(config-if)#nosh
Router0(config)#iproute168.30.0.0255.255.0.0172.30.23.2
Router0(config)#interfaceFastEthernet0/1
Router0(config-if)#ipaddress172.30.23.1255.255.255.0
router1:配置
Router1>en
Router1#conft
Router1(config)#intf0/1
Router1(config-if)#ipadd168.30.23.254255.255.0.0
Router1(config-if)#intf0/0
Router1(config-if)#ipadd172.30.23.2255.255.255.0
Router1(config-if)#nosh
Router1(config)#iproute192.168.1.0255.255.255.0172.30.23.1
Router1(config)#intf0/1
Router1(config-if)#ipadd168.30.23.254255.255.0.0
Router1(config-if)#nosh
『陸』 vue項目實現動態路由和動態菜單搭建插件式開發框架免費源碼
以往我們在開發vue項目的時候,總是通過將路徑和路由寫在route/index.js文件中,然後直接進行訪問即可,一般實現許可權匹配都是通過菜單下面的許可權參數和路由守衛進行一個驗證攔截和許可權匹配,然而這樣安全性仍然不足。因為我們在route/index.js中已經寫滿了所有的路由,這樣子不僅造成靜態路由內容過多、修改困難,同時當靜態路由內容過多的時候,我們在路由中的內容就顯得極其復雜。
而後端對前端的控制也顯得較為無力,無法實現嚴格性的控制。
由此我們發現通過動態路由控制是必然的,此時我們只需要通過後端獲取數據菜單和路由信息json,然後動態添加路由並生成菜單,使菜單與動態路由內容進行一個匹配,這樣子我們可以實現由後端控制前端的菜單和路由,我們的項目往往只需要內置幾個組件無需許可權的公共頁面如登陸、注冊、忘記密碼和404錯誤這幾個常用頁面組件。
我們只需要將寫好的組件放置到我們的view視圖下,然後我們通過動態的路由和菜單實現路由添加和菜單進行匹配,我們便可實現對插件進行訪問,我們減少了對route/index.js內容寫入,同時也有利於減少內存的佔用。
我們通過動態路由的形式,我們生成的菜單許可權更加的完善,不僅實現依靠菜單與路由守衛攔截實現鑒權,也可以通過動態路由實現動態載入vue文件,控制更加深度
我們通過動態路由的形式,我們可以將項目分給不同的人進行完成,便於組建一個開發團隊,因為他們所開發的組件,我們只需要在具備基本的javascript庫的情況下。我們直接進行動態路由的一個掛載和菜單生成便可完成項目合作,減少了對route/index.js文件的操作,保證項目的完整性。
最後我發現在非node環境的開發條件下,我們可以實現遠程的vue文件載入,這不僅為我們開發提供了便利,同時也有利於我們及時修改文件,以達到項目的需求,更有利於保障安全,實現伺服器vue文件載入。
Vue:2.6.11。
Vue-route:3.2.0。
主頁
聊天
第一通過後端返回的一個路由json數據,我們通過前端生成符合路由路由靜態內容數組的一個數組,然後再通過addRoute進行一個循環添加,我們以此生成動態路由。在登陸時獲取後端返回的菜單信息,我們進行菜單的一個循環生成,由此我們的一個動態項目就已經完成。
第二怎樣對動態路由和菜單項目進行一個管理。
我們首先可以通過搭建一個組件通過添加路由信息和管理菜單實現二者的動態匹配。我們只需要對路由信息進行一個添加和修改,並和菜單相互間進行匹配,我們便可實現簡單的路由掛載。
組件管理
菜單管理
此時將數據提交的後端由後端進行數據保存,我們此時的組件只需要放在views文件夾下,添加路由進行文件載入,我們便可實現路由管理。
第一登陸頁面配置。
我們需要在靜態文件夾下創建一個menu.json和route.json。兩個json文件模擬伺服器登錄時返回的數據。
我們在登錄頁面模擬獲取數據之後,我們通過菜單的一個方法進行生成菜單,通過路由的方法生成路由數組並進行循環添加,然後執行路由跳轉。
第二配置路由初始化內容。我們將route/index.js的路由信息填為空是非常不理智的,而且會報錯,因為路由初始化在載入前已經完成。有些頁面完全不需要許可權便可訪問,比如登錄、注冊、找回密碼和404錯誤,這種不需要許可權的頁面,我們還是需要將其直接以靜態的形式寫在route/index.js文件中。
Index初始數據
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue . use ( VueRouter )
const routes = [{
path: '/' , //訪問url
name: 'login' , //路由名稱
component : () => import ( '@/unitui/pages/Login.vue' ), //載入模板文件
meta: {
show_site: 0 , //是否全屏顯示
web_title: "登錄" //網站標題
}
},
{
path: '/register' , //訪問url
name: 'register' , //路由名稱
component : () => import ( '@/unitui/pages/Register.vue' ), //載入模板文件
meta: {
show_site: 0 , //是否全屏顯示
web_title: "注冊" //網站標題
}
},
{
path: '/forget' , //訪問url
name: 'forget' , //路由名稱
component : () => import ( '@/unitui/pages/Forget.vue' ), //載入模板文件
meta: {
show_site: 0 , //是否全屏顯示
web_title: "找回密碼" //網站標題
}
},
{
path: '/404' , //訪問url
name: '404' , //路由名稱
component : () => import ( '@/unitui/pages/404.vue' ), //載入模板文件
meta: {
show_site: 0 , //是否全屏顯示
web_title: "404錯誤" //網站標題
}
},
]
const router = new VueRouter ({
routes
})
router . beforeEach (( to , from , next ) => {
document . title = to . meta . web_title
console . log ( to );
next ()
})
export default router
第三,關於防止刷新後丟失的問題。我們需要在app.vue文件中的methods方法中定義一個路由生成方法。
示例:
init_route () { //初始化路由,防止刷新丟失
if ( sessionStorage . getItem ( "route_data" ) != null ) { //只有後端已經返回數據的情況下才允許生成
const route_data = JSON . parse ( sessionStorage . getItem ( "route_data" )); //獲取路由信息
const data = []; //默認路由數組
for ( let index = 0 ; index < route_data . length ; index ++) { //生成路由信息
data [ index ] = {
path: route_data [ index ]. path , //訪問url
name: route_data [ index ]. name , //路由名稱
component : resolve =>
require ([ `@/views/ ${ route_data [ index ]. component } ` ], resolve ), //載入模板文件
meta: {
show_site: route_data [ index ]. meta . show_site , //是否全屏顯示
web_title: route_data [ index ]. meta . web_title //網站標題
}
};
}
for ( let index = 0 ; index < data . length ; index ++) { //循環添加路由
this . $router . addRoute ( data [ index ]);
}
}
}
在mounted中進行方法調用,防止刷新的時路由丟失,導致發生錯誤。該方法內容基本和登陸頁面的菜單出路由初始內容基本相同,但我們唯一差別的是,我們需要判斷登陸所獲取的路由信息是否存在,只有在存在的時候及後端已經返回了路由信息,即證明登錄成功的時候,我們才會動態添加路由。
第一在刷新之後,默認跳轉到path:』*』的一個路由界面中去,此時我們解決方法只需要將path:』*』路由進行一個刪除,將其刪除就變可正常訪問。
第二動態路由跳轉時發生Cannot find mole xxx錯誤。
意思是無法載入我們指定的一個vue文件,這是由於route3.0版本後import方式不支持傳入變數,此時我們只需要將其改為require方式便可。
我們此次動態vue項目開發已經基本完成,我的開發的項目是基於element-ui進行,那麼如果你需要源碼參考。可以私信回復unit便可獲取。
『柒』 動態路由配置命令
1、ping命令
2、ipcnfig 命令
3、arp命令
4、Traceroute命令
5、route命令
等等……
『捌』 路由器動態ip怎麼設置
(一)、通過設置向導設置動態IP上網
1、登錄設置界面:在瀏覽器的地址欄中輸入:192.168.1.1然後按下回車鍵——>在彈出的對話框中,輸入默認用戶名、密碼,登錄到設置界面。
設置路由器的無線wifi密碼
注意問題
(1)、SSID號就是無線WiFi名稱,請不要使用中文漢字,用字母、數字來設置SSID。
(2)、PSK密碼,就是無線WiFi密碼,建議用大小寫字母、數字、符號的組合來設置,長度不得小於8位。