VueRouter爬坑第一篇-簡單實踐



VueRouter系列的文章示例編寫時,項目是使用vue-cli腳手架搭建。

項目搭建的步驟和項目目錄專門寫了一篇文章:點擊這里進行傳送

后續VueRouter系列的文章的示例編寫均基於該項目環境。


 VueRouter系列文章鏈接

  《VueRouter爬坑第一篇》-簡單實踐

  《VueRouter爬坑第二篇》-動態路由

  《VueRouter爬坑第三篇》-嵌套路由


 本篇文章完整代碼請移步:

  https://github.com/JEmbrace/VueRouter/tree/Simplepractice

 


 

閱讀目錄

一.前言

二.安裝VueRouter

  1.npm 安裝VueRouter

  2.如何使用VueRouter

三.組件和路由之間的映射

  1.<router-link>編寫可以跳轉的url

  2.編寫跳轉的目的組件

  3.定義路由

  4.入口文件main.js配置路由

  5.配置組件渲染的位置

四.總結


 

一.前言

  關於項目的搭建我們在文章最前面已經給了鏈接,在項目搭建這篇文章的最底部有一個注意事項,為了能清楚的理解本篇文章,我再把注意事項貼在這里:

  

  我們的項目在使用vue-cli初始化的時候是沒有安裝vue-router的,所以如果你的在初始化的時候安裝了vue-router,那這篇文章的有些部分可能不太適用了。

  請大家謹慎食用。

      

二.安裝VueRouter

1.npm 安裝VueRouter

  安裝命令:npm install vue-router

  

2.如何使用VueRouter

  安裝完成之后,需要有兩個步驟才能使用

  第一步:引入vue-router

    

  第二步:將組件注冊到全局(全局注冊后,在別的組件中可以直接使用,無需單獨引入)

     

   這塊先貼出步驟,暫時不寫代碼,后面做組件和路由映射的時候在把代碼寫上。

三.組件和路由之間的映射

  接着我們的疑問就來了:頁面中的一個URL如何匹配到我們編寫的組件?下面我們就一步一步揭開這個疑惑。

1.<router-link>編寫可以跳轉的url

   關於router-link的官方文檔說明可點擊此處查看

  關於上面的疑問,我們第一步需要先編寫一個可以跳轉的URL。我們先把項目中默認生成的HelloWorld.vue組件中div.hello中的內容刪除,然后在加上我們自己的內容。

 

E:\MyStudy\test\VueDemo\src\components\HelloWorld.vue

<template>
  <div class="hello">
    <p>這里是HelloWorld組件</p>
    <!-- 可跳轉的URL -->
    <router-link to="/index">點擊這里渲染出另外一個組件</router-link>   
  </div>
</template>
// 后面的script和style沒有修改,因此省略

 

App組件不做修改,這里就不貼代碼了,接着我們使用npm run dev啟動項目查看一下瀏覽器效果。

web頁面效果

 

<template> <div class="hello"> <p>這里是HelloWorld組件</p> <!-- 可跳轉的URL --> <router-link to="/index">點擊這里去另外一個組件</router-link> </div> </template> // 后面的script和style沒有修改,因此省

2.編寫跳轉的目的組件

  因為我們要實現url跳轉,因此需要編寫一個跳轉的目的組件。在這里我們創建一個組件Index。

E:\MyStudy\test\VueDemo\src\components\Index.vue

<template>
    <div>  
        <h1>這里是Index.vue組件</h1>
    </div>
</template>
<script>
export default {
    name: 'Index'
}
</script>

3.定義路由

  現在可點擊的URL准備好了,跳轉的目標組件也准備好了。接下來就是定義路由配置:將URL映射到組件。

  一般項目中為了后續好維護,會將路由配置單獨寫在一個文件中。因此我們先在E:\MyStudy\test\VueDemo\src 目錄下創建一個rotuer目錄,在該目錄下創建一個router.js文件,后面所有的路由配置均在該文件中編寫。

  創建路由配置文件

  

E:\MyStudy\test\VueDemo\src\router\router.js

// vue-router使用第一步:引入vue-router
import Vue from "vue"
import Router from "vue-router"

// vue-router使用第二步:組件注冊到全局
Vue.use(Router)

// 第三步:定義路由配置
// 引入路由需要映射的組件
import Index from '@/components/Index.vue'
const routes = [
    {
        path: '/index',   // 匹配的URL
        component: Index  //映射的目標組件
    }
]

// 第四步:創建vue-router實例,傳遞前面定義的路由配置
const router = new Router({
    routes: routes
})

// 第五步:將vue-router實例使用export導出(供其他模塊使用)
export default router 

  步驟一和步驟二在前面我們已經說過,步驟四和步驟五基本都是固定的配置不可缺少。

  第三個步驟中的routes就是稱為路由配置,可以看到routes是一個數組,它可以包含多個字典對象。每一個字典對象就是一條單個的路由。

  我們寫的這個路由只有最簡單的兩個配置項:path和component,注釋中有說明這兩個配置項的含義。

4.入口文件main.js配置路由

  前面的三個部分完成后,還需要在入口文件處把這個路由實例注入到跟組件中,這樣整個應用都可以擁有路由功能。

E:\MyStudy\test\VueDemo\src\main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router/router'
Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  components: { App },
  template: '<App/>',
  //將路由實例注冊到根組件中
  router: router
})

 

大功告成,我們現在點擊界面的鏈接試一下

 

  在這里呢,賣了個關子少了一個步驟:沒有告訴vue-router把匹配到的組件渲染到哪里。  

 

 

 

 

5.配置組件渲染的位置

<!-- 使用下面的這個標簽可以告訴vue-router將匹配到的組件渲染到這個位置 -->
<router-view>  </router-view>

 

然后我們將該段代碼加入到HelloWorld.vue這個組件中。

E:\MyStudy\test\VueDemo\src\components\HelloWorld.vue

<template>
  <div class="hello">
    <p>這里是HelloWorld組件</p>
    <!-- 可跳轉的URL -->
    <router-link to="/index">點擊這里去另外一個組件</router-link>
    
    <!-- 使用下面的這個標簽可以告訴vue-router將匹配到的組件渲染到這個位置 -->
    <router-view></router-view>
  </div>
</template>
// 后面的script和style沒有修改,因此省略

 

現在我們重新試一下效果

  現在可以看到點擊鏈接后界面發生了變化:

index.vue中的內容顯示到了HelloWorld.vue中router-view配置的位置

url由localhost:8080/#/變為localhost:8080/#/index

四.總結

  

 

  至此,一個簡單的url路由到組件的實例就完成了,現在總結一下前面梳理過的內容

  1.需要使用npm安裝vue-router。

注意:在使用veue init 初始化項目的時候會提示是否安裝vue-router,如果選擇是,那后續就不需要再次手動安裝了。

  2.可以使用<router-link/>編寫可跳轉的url,並使用<router-view/>指定組件的渲染位置

  3.創建Vue-Router實例,傳入配置的路由:最簡單的路由配置就是path和component

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM