1. 程式人生 > >Vue Router之路由基礎

Vue Router之路由基礎

cli 我們 默認 out pen rip ade 通配 save

Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,讓構建單頁面應用變得易如反掌。

一、引入Vue Router

首先確保你的工程文件有vue router。

如果沒有的話,在項目文件夾打開命令行工具,輸入:

npm install vue-router --save

進行安裝。

接下來再 main.js中引入。

import VueRouter from ‘vue-router‘
Vue.use(VueRouter);

二、配置vue router

// 配置路由
const router = new VueRouter({
  routes:[
    {path:
‘/‘,component:Home}, {path:‘/works‘,component:Works}, {path:‘/about‘,component:About}, ] })

path 為路由地址;component 為需要前往的組件

所以在這之前我們需要引入組件:

import Home from ‘./Pages/Home/Home‘
import Works from ‘./Pages/Works/Works‘
import About from ‘./Pages/About/About‘

根據自己的文件夾目錄進行引入。

然後,把router再在ue中實例化:

new Vue({
  el: ‘#app‘,
  router,//這裏
  components: { App },
  template: ‘<App/>‘
})

三、使用

普通跳轉:

<a href="#">跳轉</a>

使用vue router:

<router-link to="/">主頁</router-link>

to裏面的地址和path相同。

------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------- vue router 進階 ----------------------------------------------

一、使用名字代替path地址:

在配置路由時添加 name 屬性。

const router = new VueRouter({
  routes:[
    {path:‘/‘,component:Home},
    {path:‘/works‘,component:Works,name:‘WorksLink‘},//添加name
    {path:‘/about‘,component:About},
  ]
})

跳轉改寫為:

<router-link :to="{name:‘WorksLink‘}">作品</router-link>

二、可以通過:to="數據名" 進行動態綁定

三、編程式導航

推薦用push 少用 replace

<template>
    <div>
        <h1>Works</h1>
        <button @click="goToPrev">前一頁</button>
        <button @click="goToSpec">特定頁</button>
        <button @click="goToByName">特定頁(通過名字跳轉)</button>
    </div>
</template>

<script>
export default {
    name: Header,
    methods:{
        goToPrev(){
            this.$router.go(-1) //前一頁
        },
        goToSpec(){
            //this.$router.replace(‘/‘)
            this.$router.push(/);//指定頁
        },
        goToByName(){
            this.$router.push({name:WorksLink}) //通過名字指定
        }
    }
}
</script>

四、通配符跳轉

如果你嘗試訪問一個不存在的路徑時,我們可以設置,不存在路徑的路由

// 配置路由
const router = new VueRouter({
  routes:[
    {path:‘/‘,component:Home},
    {path:‘/works‘,component:Works,name:‘WorksLink‘},
    {path:‘/about‘,component:About},
    {path:"*",redirect:‘/‘} //默認跳轉
  ]
})

在最後添加path: ‘*‘ ,當訪問不存在的路徑時,會跳轉到redirect指定的路徑,這裏我們設置的是首頁。

五、History 模式

vue-router 默認 hash 模式 —— 使用 URL 的 hash 來模擬一個完整的 URL,於是當 URL 改變時,頁面不會重新加載。

此時地址如圖:

技術分享圖片

如果不想要很醜的 hash,我們可以用路由的 history 模式,這種模式充分利用 history.pushState API 來完成 URL 跳轉而無須重新加載頁面。

改寫路由配置:

// 配置路由
const router = new VueRouter({
  routes:[
    {path:‘/‘,component:Home},
    {path:‘/works‘,component:Works,name:‘WorksLink‘},
    {path:‘/about‘,component:About},
    {path:"*",redirect:‘/‘} //默認跳轉
  ],
  mode: ‘history‘ //history模式
})

此時地址如圖:

技術分享圖片

Vue的中文文檔非常好,所以還是推薦看官方文檔。

Vue Router之路由基礎