路由

http://jsfiddle.net/yyx990803/xgrjzsup/

建立路由

引入 vue.js 及 vue-router(npm方式)

impor vue from? ‘ vue ’

import vueRouter from ‘ vue-router ’

vue.use( vueRouter );

const.router = new vueRouter( );

1. 建立單個路由:

router.map({

????? '/view-a' : { component : ViewA },

????? '/view-b' : { compinent : ViewB }

});

export default router;? //? 將路由導出

2.嵌套路由: / a / b

router.map({

?????? ' /a ' : { component : A ,

?????????????????? subRoutes:{

????????????????????????? ' /b ' : {

????????????????????????????????? component : B

???????????????????? }? } }

})

靜態路由的使用

1. HTML

?? 1.引入 vue.js 及 vue - router.js

??? 2.<div>

<router-link to = "/foo"> xxx </router-link>

<router-link to ="/bar"> yyy </router-link>

注意:<router-link>對應的路由匹配成功,將自動設置 class -> .router-link-active

? ? 編程式導航:<router-link>為聲明式導航,router.push為編程式導航

??? 當點擊<router-link>時,router.push會在函數內部執行。

??? 1.router.push 向history棧添加一個新的記錄。當用戶點擊瀏覽器后退按鈕時,則回到之前的 url

??? 2.router.replace 和router.push不同,它不像history中添加新記錄,替換掉當前的history記錄

??? 3.router.go( n ),參數 n 是一個整數,在 history 記錄中向前或后退多少步。(正數為向前,負數為后退)

3.渲染

<router-view></router-view>? 路由匹配到的組件渲染在這里

??????? </div>

2. js

?1.組件:

?const foo = { template : '<div> foo </div>' };

?const bar = {template: '<div> bar </div>' }? ;

? 2.路由:

?const routes = [

???? { path : '/foo' ,component : foo },

???? { path : '/bar' ,compinent : bar}

]

3.渲染到頁面上

const router = new VueRouter({ routers })

const app = new vue({ router }).$mount(" #app ");

路由命名

https://github.com/vuejs/vue-router/blob/next/examples/named-routes/app.js?

如果需要通過命名的方式來識別一個路由,可以在routes配置中添加 name 一項。

路由命名
html頁面
js文件中
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容