詳解vue路由
前端路由和后端路由:
后端路由:對于普通的網(wǎng)站,所有的超鏈接都是url地址,所有url都對應(yīng)服務(wù)器上對應(yīng)的資源 前端路由:對于單頁面應(yīng)用程序來說,主要通過url的hash(#)來實(shí)現(xiàn)不同頁面的切換,同時(shí)hash還有一個(gè)特點(diǎn)HTTP請求中不會(huì)包含hash相關(guān)的內(nèi)容,所以單頁面程序中的頁面跳轉(zhuǎn)主要用hash實(shí)現(xiàn)在單頁面應(yīng)用程序中這種通過hash來改變頁面的方式稱作前端路由區(qū)別于后端路由
路由的使用
1.創(chuàng)建一個(gè)路由對象,當(dāng)導(dǎo)入vue-router包之后,在window全局對象中就有一個(gè)路由的構(gòu)造函數(shù)VueRouter
2.在new路由對象的時(shí)候可以傳遞一個(gè)配置對象,這個(gè)配置對象的route表示路由器的匹配規(guī)則
3.每個(gè)路由規(guī)則都是一個(gè)對象,這個(gè)規(guī)則對象身上必須有兩個(gè)屬性
屬性1 path表示監(jiān)聽哪個(gè)路由鏈接地址 屬性2 component,表示如果路由是前面匹配到的path,則展示component屬性對應(yīng)的組件,component屬性值必須是一個(gè)組件模板對象,不能是組件的引用名稱var login={ template:’<h2>登錄</h2>’ } var register={ template:’<h2>注冊</h2>’ } var routerObj=new VueRouter({ routes:[{path:’/login’,component:login},{path:’/register’,component:register} ] })
4.router:routerObj將路由規(guī)則對象注冊到VM實(shí)例上,用來監(jiān)聽URL地址的變化,然后展示對應(yīng)的組件
var vm=new Vue({ el:’#div1’, data:{ }, methods:{}, router:routerObj })
5.在控制的div中使用
<router-view></router-view>
6.在搜索欄輸入對應(yīng)的匹配規(guī)則,login
7.使用vue官方提供的router-link元素使用,它默認(rèn)渲染為一個(gè)a標(biāo)簽
<router-link to='/login'>登錄</router-link><router-link to='/register'>注冊</router-link>
路由重定向
1.設(shè)置一個(gè)默認(rèn)展示組件,不推薦
{path:’/’,component:login},
2.路由redirect重定向,設(shè)置默認(rèn)組件
{path:’/’,redirect:’login’},
路由傳參
1.如果使用查詢字符串 給路由傳遞參數(shù)則不需要修改路由規(guī)則的path屬性
<router-link to='/login?id=10'>登錄</router-link>
2.使用query傳遞參數(shù)
var login={ template:’<h2>登錄----{{$route.query.id}}</h2>’ }
3.通過params方式傳遞路由參數(shù),login后面會(huì)被解析為id的值
<router-link to='/login/12'>登錄</router-link>
var login={ template:’<h2>登錄----{{$route.params.id}}</h2>’ }
{path:’/login/:id’,component:login},
路由的嵌套
使用children屬性實(shí)現(xiàn)路由嵌套,子路由path前不要加/,否則永遠(yuǎn)以根路徑開始請求
<div<router-link to='/account'>account</router-link> <router-view></router-view> </div> <template id='tmp1'> <div><h2>account 組件</h2><router-link to='/account/login'>登錄</router-link><router-link to='/account/register'>注冊</router-link><router-view></router-view> </div> </template>
var router=new VueRouter({routes:[ {path:’/account’,component:account, children:[ {path:’login’,component:login}, {path:’register’,component:register} ]}] })
命名視圖
命名視圖在components(這時(shí)會(huì)多個(gè)s)后加屬性再在使用<router-view></router-view>的時(shí)候用name引入,可以使一個(gè)頁面中存在多個(gè)路由
<router-view></router-view> <router-view name='left'></router-view> <router-view name='main'></router-view>
var router=new VueRouter({routes:[ {path:’/’,components:{ default:header, left:leftBox, main:mainBox }}, ] })
以上就是詳解vue路由的詳細(xì)內(nèi)容,更多關(guān)于vue路由的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. Python網(wǎng)絡(luò)編程之ZeroMQ知識總結(jié)2. chat.asp聊天程序的編寫方法3. Python查找算法之分塊查找算法的實(shí)現(xiàn)4. .NET 中配置從xml轉(zhuǎn)向json方法示例詳解5. python實(shí)現(xiàn)讀取類別頻數(shù)數(shù)據(jù)畫水平條形圖案例6. python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作7. Python TestSuite生成測試報(bào)告過程解析8. 解決AJAX返回狀態(tài)200沒有調(diào)用success的問題9. JSP之表單提交get和post的區(qū)別詳解及實(shí)例10. 低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案
