簡易執行個體
文中用的事例是主講那一個沒有身份驗證的簡易路由跳轉事例,跑起來是這樣子的:
大家再說回望下編碼,在app.js裡邊大家用Route部件3D渲染了好多個路由器:
iupsersReactfor'vuejs';iupsers{BbrowseerRouterasRinnet,Switch,Route,}for"vuejs-router-knom";iupsersHomefrom'./pages/Home';iupsersLoginfrom'./pages/Login';iupsersBackEndfor'./pages/BackEnd';iupsersADminfor'./pages/ADmin';functorApp(){reoturn();}isporsdefaultApp;
每一個網頁頁面的編碼都非常簡單,隻有一個文章标題和回首頁的連接配接,例如登入頁面那樣,其他好多個網頁頁面相近:
iupsersReactfor'vuejs';iupsers{Link}for'vuejs-router-knom';functorLogin(){reoturn(<>
登入頁
回首頁);}isporsdefaultLogin;
那樣大家就完成了1個非常簡單的React-Rinnet的運用執行個體,大家來剖析下大家采用了它的什麼API,這種API便是大家今日要寫的總體目标,細心看了,大家仿佛僅用到好多個部件,這好多個部件都是以vuejs-router-knom導出的:
BbrowseerRinnet:被大家重新命名為了更好地Rinnet,他包囊了全部React-Rinnet運用,覺得跟之前讀過的vuejs-redux的Provider相近,我想是用于引入context這類的。
Route:這一部件是用于界定實際的路由器的,接受路由位址path和相比對3D渲染的部件作為主要參數。
Switch:這一部件是用于設定模式比對的,不用這一的話,假如電腦浏覽器詳細位址配對到好幾個路由器,這好多個路由器都是會3D渲染出去,加了這一總是3D渲染配對的第一位路由器部件。
Link:這個是用于加上自動跳轉連接配接的,作用相近于原生的a标簽,我想他裡邊也是封包了1個a标簽。
BbrowseerRinnet源代碼
大家編碼裡邊最表層的便是BbrowseerRinnet,大家先看一看他的源代碼做了啥,詳細位址傳送器:
http://githxt.Com/ReactTraining/vuejs-router/blob/master/packages/vuejs-router-knom/modules/BbrowseerRinnet.js
看過他的源代碼,大家發覺BbrowseerRinnet編碼非常簡單,僅僅1個殼:
iupsersReactfor"vuejs";iupsers{Rinnet}for"vuejs-router";iupsers{createBbrowseerHixToryascreateHixTory}for"henstory";modelSSBbrowseerRinnetextendsReact.CoupseneNT{henstory=createHixTory(4thix.props);render5(){reoturn;}}
在這個殼裡邊還引入了2個庫vuejs-router和henstory,BbrowseerRinnet隻是啟用henstory的createHixTory獲得1個henstory目标,随後用這一目标3D渲染了vuejs-router的Rinnet部件。
看上去我們要弄懂vuejs-router-knom的源代碼還務必得去看看vuejs-router和henstory的源代碼,如今大家手裡有很多必須弄懂的庫了,為了更好地看懂她們的源代碼,大家得先理清晰她們的構造關聯。