馃弳浣滆€呯畝浠嬶細鍝悞锛孋SDN2022鍗氬涔嬫槦Top1銆丆SDN2021鍗氬涔嬫槦Top2銆佸灞婃柊鏄熻鍒掑甯堚湆銆佸崥瀹笓瀹娥煉紝涓撴敞Java纭牳骞茶揣鍒嗕韩锛岀珛蹇楀仛鍒癑ava璧涢亾鍏ㄧ綉Top N銆?/p>
馃弳鏈枃鏀跺綍浜庯紝Java鍩虹鏁欑▼绯诲垪锛岀洰鍓嶅凡缁?00+璁㈤槄锛孋SDN鏈€寮篔ava涓撴爮锛屽寘鍚叏閮↗ava鍩虹鐭ヨ瘑鐐广€丣ava8鏂扮壒鎬с€丣ava闆嗗悎銆丣ava澶氱嚎绋嬨€丣ava浠g爜瀹炰緥锛岀悊璁虹粨鍚堝疄鎴橈紝瀹炵幇Java鐨勮交鏉惧涔犮€?/p>
馃弳濮愬绡囷紝Java鍩虹鏁欑▼锛堝叆闂ㄧ瘒锛夛紝鍖呭惈闈㈠悜瀵硅薄銆佸熀鏈暟鎹被鍨嬨€佹暟缁勩€佺户鎵垮拰澶氭€併€佹硾鍨嬨€佹灇涓剧瓑Java鍩虹鐭ヨ瘑鐐广€?/p>
馃弳濮愬杩涢樁绡囷紝Java鍩虹鏁欑▼锛堣繘闃剁瘒锛夛紝鍖呭惈Java楂樺苟鍙戙€丼pring銆丮ySQL绛塉ava杩涢樁鎶€鏈爤銆?/p>
馃弳鍏ㄩ儴璁㈤槄锛屽彲鍔犲叆Java瀛︿範鏄熺悆锛屽畬鎴怞ava浠庡叆闂ㄣ€佸疄鎴樸€佽繘闃跺叏鏂逛綅鐨凧ava鐭ヨ瘑浣撶郴瀛︿範銆?/p>
鐩綍
鈥嬩竴銆佸墠绔矾鐢眝ue-router
1銆佺淮鍩虹櫨绉?/p>
2銆佽矾鐢辩殑鏈哄埗
3銆佸悗绔覆鏌?/p>
4銆佸悗绔矾鐢遍樁娈?/p>
鈥?銆佸墠鍚庣鍒嗙
6銆佸崟椤甸潰瀵屽簲鐢ㄩ樁娈?/p>
7銆丼PA椤甸潰
8銆佸墠绔矾鐢?/p>
浜屻€佹敼鍙楿RL锛屼絾鏄〉闈笉杩涜鏁翠綋鐨勫埛鏂?/p>
鈥?銆乁RL鐨刪ash
2銆丠TML5鐨刪istory聽
涓夈€佸畨瑁呭拰浣跨敤vue-router
1銆佸畨瑁卾ue-router
2銆佸湪妯″潡鍖栧伐绋嬩腑浣跨敤瀹冿紙鍥犱负瀹冩槸涓€涓彃浠讹紝鎵€浠ュ彲浠ラ€氳繃Vue.use()鏉ュ畨瑁呰矾鐢卞姛鑳斤級
3銆佷娇鐢╲ue-router鐨勬楠?/p>
4銆乺outer-link涓巖outer-view
5銆乿ue-router浠g爜瀹炰緥
聽鍥涖€乺outer-link鐨勫叾瀹冨睘鎬цˉ鍏?/p>
浜斻€乿ue-router鍔ㄦ€佽矾鐢辩殑浣跨敤
鍏€乿ue-router鎵撳寘鏂囦欢鐨勮В鏋?/p>
涓冦€佽矾鐢辨噿鍔犺浇
1銆佷粈涔堟槸鎳掑姞杞?/p>
2銆佹噿鍔犺浇鐨勬柟寮?/p>
3銆佷唬鐮佸疄渚?/p>
鍏€佽矾鐢卞祵濂?/p>
1銆佸祵濂楄矾鐢辨槸涓€涓緢甯歌鐨勫姛鑳?/p>
2銆佸疄鐜板祵濂楄矾鐢辩殑涓や釜姝ラ
聽3銆佸祵濂楄矾鐢变唬鐮佸疄渚?/p>
涔濄€乿ue-router鍙傛暟浼犻€?/p>
1銆佷紶閫掑弬鏁颁富瑕佹湁涓ょ绫诲瀷: params鍜宷uery
2銆佷唬鐮佸疄渚?/p>
鍗併€乿ue-router鍏ㄥ眬瀵艰埅瀹堝崼
1銆佺敓鍛藉懆鏈熷嚱鏁?/p>
2銆佸墠缃畧鍗?/p>
鍗佷竴銆乲eep-alive涓巚ue-router
鈥嬩竴銆佸墠绔矾鐢眝ue-router
1銆佺淮鍩虹櫨绉?/h4>
璺敱灏辨槸閫氳繃浜掕仈鐨勭綉缁滄妸淇℃伅浠庢簮鍦板潃浼犺緭鍒扮洰鐨勫湴鍧€鐨勬椿鍔ㄣ€?/p>
2銆佽矾鐢辩殑鏈哄埗
璺敱鍖呮嫭璺敱鍜岃浆鍙戙€?璺敱鍣?-> 鍏綉IP -> 鏄犲皠琛?-> 鍐呯綉IP 鏄犲皠琛細[鍐呯綉ip1:鐢佃剳鏍囪瘑1锛屽唴缃慽p2:鐢佃剳鏍囪瘑2]
3銆佸悗绔覆鏌?/h4>
JSP锛歫ava server page 鍚庣娓叉煋 == html + css + java java浠g爜鐨勪綔鐢ㄦ槸浠庢暟鎹簱涓鍙栨暟鎹紝鐒跺悗灏嗕粬浠姩鎬佺殑鏀惧湪椤甸潰涓€?鍚庣娓叉煋鐨勬剰鎬濆氨鏄紝鍓嶇璇锋眰鍚庣锛岄〉闈㈢殑鏁版嵁鍦ㄥ悗绔凡缁忔覆鏌撳ソ浜嗭紝鐒跺悗鍐嶈繑鍥炲墠绔紝鍐呭鍖呮嫭HTML+css锛屽綋鐒舵槸鍖呭惈鏁版嵁鐨凥TML銆?鍚庣璺敱锛氬悗绔鐞哢RL鍜岄〉闈箣闂寸殑鏄犲皠鍏崇郴銆?/p>
4銆佸悗绔矾鐢遍樁娈?/h4>
鏃╂湡鐨勭綉绔欏紑鍙戞暣涓狧TML椤甸潰鏄敱鏈嶅姟鍣ㄦ潵娓叉煋鐨勩€?鏈嶅姟鍣ㄧ洿鎺ョ敓浜ф覆鏌撳ソ瀵瑰簲鐨凥TML椤甸潰, 杩斿洖缁欏鎴风杩涜灞曠ず銆?/p>
浣嗘槸, 涓€涓綉绔? 杩欎箞澶氶〉闈㈡湇鍔″櫒濡備綍澶勭悊鍛?
- 涓€涓〉闈㈡湁鑷繁瀵瑰簲鐨勭綉鍧€, 涔熷氨鏄疷RL銆?/li>
- URL浼氬彂閫佸埌鏈嶅姟鍣? 鏈嶅姟鍣ㄤ細閫氳繃姝e垯瀵硅URL杩涜鍖归厤, 骞朵笖鏈€鍚庝氦缁欎竴涓狢ontroller杩涜澶勭悊銆?/li>
- Controller杩涜鍚勭澶勭悊, 鏈€缁堢敓鎴怘TML鎴栬€呮暟鎹? 杩斿洖缁欏墠绔€?/li>
- 杩欏氨瀹屾垚浜嗕竴涓狪O鎿嶄綔銆?/li>
涓婇潰鐨勮繖绉嶆搷浣? 灏辨槸鍚庣璺敱锛?/p>
- 褰撴垜浠〉闈腑闇€瑕佽姹備笉鍚岀殑璺緞鍐呭鏃? 浜ょ粰鏈嶅姟鍣ㄦ潵杩涜澶勭悊, 鏈嶅姟鍣ㄦ覆鏌撳ソ鏁翠釜椤甸潰, 骞朵笖灏嗛〉闈㈣繑鍥炵粰瀹㈡埛椤裤€?/li>
- 杩欑鎯呭喌涓嬫覆鏌撳ソ鐨勯〉闈? 涓嶉渶瑕佸崟鐙姞杞戒换浣曠殑js鍜宑ss, 鍙互鐩存帴浜ょ粰娴忚鍣ㄥ睍绀? 杩欐牱涔熸湁鍒╀簬SEO鐨勪紭鍖栥€偮?/li>
鍚庣璺敱鐨勭己鐐癸細
- 涓€绉嶆儏鍐垫槸鏁翠釜椤甸潰鐨勬ā鍧楃敱鍚庣浜哄憳鏉ョ紪鍐欏拰缁存姢鐨勩€?/li>
- 鍙︿竴绉嶆儏鍐垫槸鍓嶇寮€鍙戜汉鍛樺鏋滆寮€鍙戦〉闈? 闇€瑕侀€氳繃PHP鍜孞ava绛夎瑷€鏉ョ紪鍐欓〉闈唬鐮併€?/li>
- 鑰屼笖閫氬父鎯呭喌涓婬TML浠g爜鍜屾暟鎹互鍙婂搴旂殑閫昏緫浼氭贩鍦ㄤ竴璧? 缂栧啓鍜岀淮鎶ら兘鏄潪甯哥碂绯曠殑浜嬫儏銆?/strong>
鈥?銆佸墠鍚庣鍒嗙
鍚庣鍙礋璐f彁渚涙暟鎹紝涓嶈礋璐e叾瀹冧换浣曢樁娈点€?娴忚鍣ㄤ腑鏄剧ず鐨勭綉椤典腑鐨勫ぇ閮ㄥ垎鍐呭锛岄兘鏄敱鍓嶇鍐欑殑JS浠g爜鍦ㄦ祻瑙堝櫒涓墽琛岋紝鏈€缁堟覆鏌撳嚭鏉ョ殑缃戦〉銆?/p>
闅忕潃Ajax鐨勫嚭鐜? 鏈変簡鍓嶅悗绔垎绂荤殑寮€鍙戞ā寮忋€?/p>
鍚庣鍙彁渚汚PI鏉ヨ繑鍥炴暟鎹? 鍓嶇閫氳繃Ajax鑾峰彇鏁版嵁, 骞朵笖鍙互閫氳繃JavaScript灏嗘暟鎹覆鏌撳埌椤甸潰涓€?/p>
杩欐牱鍋氭渶澶х殑浼樼偣灏辨槸鍓嶅悗绔矗浠荤殑娓呮櫚, 鍚庣涓撴敞浜庢暟鎹笂, 鍓嶇涓撴敞浜庝氦浜掑拰鍙鍖栦笂銆?骞朵笖褰撶Щ鍔ㄧ(iOS/Android)鍑虹幇鍚? 鍚庣涓嶉渶瑕佽繘琛屼换浣曞鐞? 渚濈劧浣跨敤涔嬪墠鐨勪竴濂桝PI鍗冲彲銆?鐩墠寰堝鐨勭綉绔欎緷鐒堕噰鐢ㄨ繖绉嶆ā寮忓紑鍙戙€?/p>
6銆佸崟椤甸潰瀵屽簲鐢ㄩ樁娈?/h4>
鍏跺疄SPA鏈€涓昏鐨勭壒鐐瑰氨鏄墠鍚庣鍒嗙鐨勫熀纭€涓婂姞涓婁簡涓€灞傚墠绔矾鐢憋紱 涔熷氨鏄墠绔潵缁存姢涓€濂楄矾鐢辫鍒?/p>
7銆丼PA椤甸潰
SPA锛氬崟椤靛瘜搴旂敤 鏁翠釜缃戦〉鍙湁涓€涓狧TML缃戦〉銆?/p>
8銆佸墠绔矾鐢?/h4>
URL鍜屽墠绔〉闈㈢殑鏄犲皠鍏崇郴銆?-----> vue router
鍓嶇璺敱鐨勬牳蹇冩槸浠€涔堝憿锛?鏀瑰彉URL锛屼絾鏄〉闈笉杩涜鏁翠綋鐨勫埛鏂般€?/p>
浜屻€佹敼鍙楿RL锛屼絾鏄〉闈笉杩涜鏁翠綋鐨勫埛鏂?/h3>
鈥?銆乁RL鐨刪ash
URL鐨刪ash涔熷氨鏄敋鐐癸紝鏈川涓婃槸鏀瑰彉window.location鐨刪ref灞炴€с€?鎴戜滑鍙互閫氳繃鐩存帴璧嬪€糽ocation.hash鏉ユ敼鍙榟ref锛屼絾鏄〉闈笉鍙戠敓鍒锋柊銆?/p>
2銆丠TML5鐨刪istory聽
history.pushState({},'','home')
history.pushState鐩稿綋浜庢爤鐨勬搷浣滐紝鍏堣繘鍚庡嚭锛屽脊鏍堝拰鍏ユ爤鐨勬搷浣溿€?/p>
history.pushState鍏ユ爤锛?/p>
history.back()鍑烘爤锛?/p>
history.go(-1)聽 鐩稿綋浜?history.back()锛?/p>
history.forward 鐩稿綋浜巋istory.go(1)锛?/p>
history.replaceState()锛氫笉鑳借繑鍥烇紱
涓夈€佸畨瑁呭拰浣跨敤vue-router
1銆佸畨瑁卾ue-router
npm install vue-router --save
2銆佸湪妯″潡鍖栧伐绋嬩腑浣跨敤瀹冿紙鍥犱负瀹冩槸涓€涓彃浠讹紝鎵€浠ュ彲浠ラ€氳繃Vue.use()鏉ュ畨瑁呰矾鐢卞姛鑳斤級
- 瀵煎叆璺敱瀵硅薄锛屽苟涓旇皟鐢╒ue.use(VueRouter)
- 鍒涘缓璺敱瀹炰緥锛屽苟浼犲叆璺敱鏄犲皠閰嶇疆
- 鍦╒ue瀹炰緥涓寕杞藉垱寤虹殑璺敱瀹炰緥
3銆佷娇鐢╲ue-router鐨勬楠?/h4>
- 鍒涘缓璺敱缁勪欢
- 閰嶇疆璺敱鏄犲皠锛岀粍浠跺拰璺緞鏄犲皠鍏崇郴
- 浣跨敤璺敱锛氶€氳繃
鍜?router-view>
4銆乺outer-link涓巖outer-view
锛?锛堿pp.vue 锛?锛塇ome.vue 鎴戞槸棣栭〉鍐呭, 鍝堝搱鍝?/p>
锛?锛堿bout.vue 鎴戞槸鍏充簬鍐呭, 鍛靛懙鍛?/p>
锛?锛塵ain.js 锛?锛塱ndex.js 锛?锛夋祻瑙堝櫒灞曠ず 閫氳繃浠g爜璺宠浆璺敱锛?/p>
鍦ㄦ煇浜涙儏鍐典笅锛屼竴涓〉闈㈢殑path璺緞鍙兘鏄笉纭畾鐨勶紝姣斿鎴戜滑杩涘叆鐢ㄦ埛鐣岄潰鏃讹紝甯屾湜璺緞涓瓨鍦ㄧ敤鎴穒d锛岃繖绉峱ath鍜孋omponent鐩镐簰鍖归厤鐨勫叧绯伙紝鎴戜滑绉颁箣涓哄姩鎬佽矾鐢憋紝涔熸槸璺敱浼犻€掓暟鎹殑涓€绉嶆柟寮忋€?/p>
this.$route琛ㄧず姝e湪娲昏穬鐨勮矾鐢便€?/p>
鑾峰彇璺緞涓殑濮撳悕锛?/p>
鎴戞槸鐢ㄦ埛鐨勭浉鍏充俊鎭? 鍢垮樋鍢?/p>
褰撴墦鍖呮瀯寤哄簲鐢ㄦ椂锛孞avaScript鍖呬細鍙樺緱闈炲父澶э紝褰卞搷椤甸潰鍔犺浇銆?/p>
濡傛灉鎴戜滑鑳藉惂涓嶅悓璺敱瀵瑰簲鐨勭粍浠跺垎鍓叉垚涓嶅悓鐨勪唬鐮佸潡锛岀劧鍚庡綋璺敱琚闂殑鏃跺€欐墠鍔犺浇瀵瑰簲缁勪欢锛岃繖鏍峰氨鏇村姞楂樻晥浜嗐€?/p>
锛?锛?span >缁撳悎Vue鐨勫紓姝ョ粍浠跺拰Webpack鐨勪唬鐮佸垎鏋?/span> 锛?锛塧md鍐欐硶 锛?锛?span >鍦?/span>ES6涓?/span>锛?/span>鎴戜滑鍙互鏈夋洿鍔犵畝鍗曠殑鍐欐硶鏉ョ粍缁?/span>Vue寮傛缁勪欢鍜?/span>Webpack鐨勪唬鐮佸垎鍓?/span> index.js 姣斿鍦╤ome椤甸潰涓紝鎴戜滑甯屾湜閫氳繃/home/news鍜?home/message璁块棶涓€浜涘唴瀹癸紱 涓€涓矾寰勬槧灏勪竴涓粍浠讹紝璁块棶杩欎袱涓矾寰勪篃鍒嗗埆娓叉煋杩欎袱涓粍浠讹紱 锛?锛塱ndex.js 锛?锛塇ome.vue 鎴戞槸棣栭〉鍐呭, 鍝堝搱鍝?/p>
锛?锛塇omeNews.vue params鐨勭被鍨? query鐨勭被鍨? 锛?锛変紶鍊?/p>
锛?锛夊彇鍊?/p>
锛?锛夊姩鎬佷慨鏀规爣棰?/p>
璺宠浆鍓嶅洖璋?/p>
锛?锛塨eforeEach婧愮爜鍒嗘瀽锛?/p>
聽锛?锛夎烦杞悗鍥炶皟 keep-alive鏄痸ue鍐呯疆鐨勪竴涓粍浠讹紝鍙互浣胯鍖呭惈鐨勭粍浠朵繚鐣欑姸鎬侊紝鎴栭伩鍏嶉噸鏂版覆鏌撱€?/p>
router-view涔熸槸涓€涓粍浠讹紝濡傛灉鐩存帴琚寘鍦╧eep-alive閲岄潰锛屾墍鏈夎矾寰勫尮閰嶅埌鐨勮瘯鍥剧粍浠堕兘浼氳缂撳瓨銆?/p>
馃弳鏈枃鏀跺綍浜庯紝Java鍩虹鏁欑▼绯诲垪锛岀洰鍓嶅凡缁?00+璁㈤槄锛孋SDN鏈€寮篔ava涓撴爮锛屽寘鍚叏閮↗ava鍩虹鐭ヨ瘑鐐广€丣ava8鏂扮壒鎬с€丣ava闆嗗悎銆丣ava澶氱嚎绋嬨€丣ava浠g爜瀹炰緥锛岀悊璁虹粨鍚堝疄鎴橈紝瀹炵幇Java鐨勮交鏉惧涔犮€?/p>
馃弳濮愬绡囷紝Java鍩虹鏁欑▼锛堝叆闂ㄧ瘒锛夛紝鍖呭惈闈㈠悜瀵硅薄銆佸熀鏈暟鎹被鍨嬨€佹暟缁勩€佺户鎵垮拰澶氭€併€佹硾鍨嬨€佹灇涓剧瓑Java鍩虹鐭ヨ瘑鐐广€?/p>
馃弳濮愬杩涢樁绡囷紝Java鍩虹鏁欑▼锛堣繘闃剁瘒锛夛紝鍖呭惈Java楂樺苟鍙戙€丼pring銆丮ySQL绛塉ava杩涢樁鎶€鏈爤銆?/p>
馃弳鍏ㄩ儴璁㈤槄锛屽彲鍔犲叆Java瀛︿範鏄熺悆锛屽畬鎴怞ava浠庡叆闂ㄣ€佸疄鎴樸€佽繘闃跺叏鏂逛綅鐨凧ava鐭ヨ瘑浣撶郴瀛︿範銆?/p>
5銆乿ue-router浠g爜瀹炰緥
鎴戞槸棣栭〉
鎴戞槸鍏充簬
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false
new Vue({
el: '#app',
router,
render: h => h(App)
})
// 閰嶇疆璺敱鐩稿叧鐨勪俊鎭?
import VueRouter from 'vue-router'
import Vue from 'vue'
import Home from '../components/Home'
import About from '../components/About'
// 1.閫氳繃Vue.use(鎻掍欢), 瀹夎鎻掍欢
Vue.use(VueRouter)
// 2.鍒涘缓VueRouter瀵硅薄
const routes = [
{
path: '',
// redirect閲嶅畾鍚?
redirect: '/home'
},
{
path: '/home',
component: Home
},
{
path: '/about',
component: About
}
]
const router = new VueRouter({
// 閰嶇疆璺敱鍜岀粍浠朵箣闂寸殑搴旂敤鍏崇郴
routes,
mode: 'history',
linkActiveClass: 'active'
})
// 3.灏唕outer瀵硅薄浼犲叆鍒癡ue瀹炰緥
export default router
聽鍥涖€乺outer-link鐨勫叾瀹冨睘鎬цˉ鍏?/h3>
浜斻€乿ue-router鍔ㄦ€佽矾鐢辩殑浣跨敤
...
鎴戞槸鐢ㄦ埛鐣岄潰
{{userId}}
{{$route.params.id}}
鍏€乿ue-router鎵撳寘鏂囦欢鐨勮В鏋?/h3>
涓冦€佽矾鐢辨噿鍔犺浇
1銆佷粈涔堟槸鎳掑姞杞?/h4>
2銆佹噿鍔犺浇鐨勬柟寮?/h4>
const Home = resolve => { require.ensure(['../components/Home.vue'],
() => { resolve(require('../components/Home.vue')) })};
const About = resolve => require(['../components/About.vue'], resolve);
const Home = () => import('../components/Home.vue')
3銆佷唬鐮佸疄渚?/h4>
// import Home from '../components/Home'
// import About from '../components/About'
// import User from '../components/User'
// 鎳掑姞杞芥柟寮?
const Home = () => import('../components/Home')
const About = () => import('../components/About')
const User = () => import('../components/User')
鍏€佽矾鐢卞祵濂?/h3>
1銆佸祵濂楄矾鐢辨槸涓€涓緢甯歌鐨勫姛鑳?/h4>
2銆佸疄鐜板祵濂楄矾鐢辩殑涓や釜姝ラ
聽3銆佸祵濂楄矾鐢变唬鐮佸疄渚?/h4>
// 閰嶇疆璺敱鐩稿叧鐨勪俊鎭?
import VueRouter from 'vue-router'
import Vue from 'vue'
const Home = () => import('../components/Home')
const HomeNews = () => import('../components/HomeNews')
const HomeMessage = () => import('../components/HomeMessage')
const About = () => import('../components/About')
const User = () => import('../components/User')
const Profile = () => import('../components/Profile')
// 1.閫氳繃Vue.use(鎻掍欢), 瀹夎鎻掍欢
Vue.use(VueRouter)
// 2.鍒涘缓VueRouter瀵硅薄
const routes = [
{
path: '',
// redirect閲嶅畾鍚?
redirect: '/home'
},
{
path: '/home',
component: Home,
meta: {
title: '棣栭〉'
},
children: [
{
path: 'news',
component: HomeNews
},
{
path: 'message',
component: HomeMessage
}
]
}
]
const router = new VueRouter({
// 閰嶇疆璺敱鍜岀粍浠朵箣闂寸殑搴旂敤鍏崇郴
routes,
mode: 'history',
linkActiveClass: 'active'
})
// 3.灏唕outer瀵硅薄浼犲叆鍒癡ue瀹炰緥
export default router
鎴戞槸棣栭〉
{{message}}
涔濄€乿ue-router鍙傛暟浼犻€?/h3>
1銆佷紶閫掑弬鏁颁富瑕佹湁涓ょ绫诲瀷: params鍜宷uery
2銆佷唬鐮佸疄渚?/h4>
{{$route.query.name}}
{{$route.query.age}}
{{$route.query.height}}
鍗併€乿ue-router鍏ㄥ眬瀵艰埅瀹堝崼
1銆佺敓鍛藉懆鏈熷嚱鏁?/h4>
2銆佸墠缃畧鍗?/h4>
// 鍓嶇疆瀹堝崼(guard)
router.beforeEach((to, from, next) => {
// 浠巉rom璺宠浆鍒皌o
document.title = to.matched[0].meta.title
// 蹇呴』璋冪敤next()锛岃〃绀烘墽琛屼笅涓€姝ョ殑鎰忔€?
next()
})
// 鍚庣疆閽╁瓙(hook)
router.afterEach((to, from) => {
// console.log('--鎴戞槸CSDN鍝悞--');
})
鍗佷竴銆乲eep-alive涓巚ue-router