簡單說說如何使用vue-router插件的方法
1 安裝
首先,通過 npm 安裝 vue-router 插件:
npm install --save vue-router
安裝的插件版本是:vue-router@3.0.2
2 用法
2.1 新建 vue 組件
在 router 目錄中,新建 views 目錄,然后新建兩個 vue 組件(一個頁面就對應(yīng)一個組件)。
index.vue:
<template>
<div>首頁</div>
</template>
<script>
export default {
name: "index.vue"
}
</script>
<style scoped>
</style>
about.vue:
<template>
<div>關(guān)于我們</div>
</template>
<script>
export default {
name: "about"
}
</script>
<style scoped>
</style>
2.2 修改 main.js
// 引入 Vue 框架
import Vue from 'vue'
import VueRouter from 'vue-router';
//引入 hello.vue 組件
import Hello from './hello.vue'
//加載 vue-router 插件
Vue.use(VueRouter);
/*定義路由匹配表*/
const Routers = [{
path: '/index',
component: (resolve) => require(['./router/views/index.vue'], resolve)
},
{
path: '/about',
component: (resolve) => require(['./router/views/about.vue'], resolve)
}]
//路由配置
const RouterConfig = {
//使用 HTML5 的 History 路由模式
mode: 'history',
routes: Routers
};
//路由實例
const router = new VueRouter(RouterConfig);
new Vue({
el: '#app',
router: router,
render: h => h(Hello)
})
步驟如下:
- 加載 vue-router 插件。
- 定義路由匹配表,每個路由映射到一個組件。
- 配置路由。
- 新建路由實例。
- 在 Vue 實例中引用路由實例。
Routers 中的每一項,都有以下這些屬性:
| 屬性 | 說明 |
|---|---|
| path | 匹配路徑 |
| component | 需要映射的組件 |
webpack 把每一個路由都打包成一個 js 文件。只有在請求該頁面時,才會加載這個 js 文件,即按需加載。
如果需要一次性加載,那么可以這樣配置:
{
path: '/index',
component: require('./router/views/index.vue')
}
配置了異步路由之后,編譯出的頁面 js 被稱為 chunk,它們默認的命名格式為 0.main.js、1.main.js 等等。
可以在 webpack.config.js 中配置這個 chunk 的命名格式:
output: {
...
//chunk 文件名
chunkFilename:'[name].chunk.js'
}
刷新頁面之后,就會在調(diào)試模式看到 chunk 名稱已經(jīng)被改變咯:

在 RouterConfig 中,我們使用了 HTML5 的 History 路由模式,即通過 "/" 來設(shè)置路徑。如果不配置 mode,RouterConfig 默認是使用 “#” (錨點)來匹配路徑。
注意: 生產(chǎn)環(huán)境中,服務(wù)端必須將所有路由都指向同一個 HTML,或設(shè)置 404 頁面為這個 HTML 頁面,否則刷新頁面就會出現(xiàn) 404 錯誤。
2.3 配置 chunk 樣式
使用了 chunk 之后,每個 *.vue 文件中所定義的樣式,默認通過 Javascript 來動態(tài)創(chuàng)建 <style> 標(biāo)簽來寫入樣式。我們可以通過配置,把這些文件中的樣式都統(tǒng)一寫入 main.css,修改 webpack.config.js :
plugins: [//插件
new ExtractTextPlugin({
filename: '[name].css',
allChunks: true
}),
...
]
2.4 配置 History 路由指令
在 package.json 中,修改 dev 指令:
"dev": "webpack-dev-server --open --history-api-fallback --config webpack.config.js",
2.5 掛載路由組件
在根實例,掛載路由組件:
<template>
<div>
<router-view></router-view>
</div>
</template>
運行時,<router-view> 會根據(jù)當(dāng)前所配置的路由規(guī)則,渲染出不同的頁面組件。主界面中的公共部分,比如側(cè)邊欄、導(dǎo)航欄以及底部版權(quán)信息欄,可以直接定義在根目錄,與<router-view> 同級。這樣,當(dāng)切換路由時,切換的只是<router-view> 掛載的組件,其它內(nèi)容不會變化。
2.6 運行
執(zhí)行 npm run dev 之后,在瀏覽器地址欄輸入不同的 URL ,就會看到掛載的不同組件信息。
http://localhost:8080/index:


2.7 重定向
我們可以在路由配置表中,配置一項功能,當(dāng)訪問的頁面不存在時,重定向到首頁:
const Routers = [
...
{//當(dāng)訪問的頁面不存在時,重定向到首頁
path: '*',
redirect: '/index'
}
]
這樣,即使只訪問 http://localhost:8080/,也會自動跳轉(zhuǎn)到首頁啦 O(∩_∩)O~
2.8 帶參數(shù)的路由
路由 path 可以帶參數(shù)。比如文章 URL,路由的前半部分是固定的,后半部分是動態(tài)參數(shù),形如:/article/xxx。它們會被路由到同一個頁面,在該頁面可以獲取 xxx 參數(shù),然后根據(jù)這個參數(shù)來請求數(shù)據(jù)。
首先在 main.js 中配置帶參數(shù)的路由規(guī)則:
const Routers = [{
...
{
path: '/article/:id',
component: (resolve) => require(['./router/views/article.vue'], resolve)
}
...
]
然后在 router/views 下新建一個 article.vue :
<template>
<div>{{$route.params.id}}</div>
</template>
<script>
export default {
name: "article",
mounted() {
console.log(this.$route.params.id);
}
}
</script>
<style scoped>
</style>
運行 npm run dev 后,在瀏覽器地址欄中輸入 http://localhost:8080/article/123,就能訪問到 article.vue 組件咯:

注意: 因為配置的參數(shù)路由規(guī)則是 /article/:id,即必須帶 id 參數(shù),否則是會重定向會 /index 的哦O(∩_∩)O~
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- VueJs路由跳轉(zhuǎn)——vue-router的使用詳解
- vue router使用query和params傳參的使用和區(qū)別
- Vue.js路由組件vue-router使用方法詳解
- Vue學(xué)習(xí)筆記進階篇之vue-router安裝及使用方法
- vue中使用vue-router切換頁面時滾動條自動滾動到頂部的方法
- 詳解使用vue-router進行頁面切換時滾動條位置與滾動監(jiān)聽事件
- Vue.js路由vue-router使用方法詳解
- 使用vue-router beforEach實現(xiàn)判斷用戶登錄跳轉(zhuǎn)路由篩選功能
- 使用vue-router設(shè)置每個頁面的title方法
相關(guān)文章
從Vue轉(zhuǎn)換看Webpack與Vite 代碼轉(zhuǎn)換機制差異詳解
這篇文章主要為大家介紹了從Vue轉(zhuǎn)換看Webpack與Vite代碼轉(zhuǎn)換機制差異詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
Vue el-table表格第一列序號與復(fù)選框hover切換方式
這篇文章主要介紹了Vue el-table表格第一列序號與復(fù)選框hover切換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
element input輸入框自動獲取焦點的實現(xiàn)
本文主要介紹了element input輸入框自動獲取焦點的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
vue通過滾動行為實現(xiàn)從列表到詳情,返回列表原位置的方法
今天小編就為大家分享一篇vue通過滾動行為實現(xiàn)從列表到詳情,返回列表原位置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
Vue子組件props從父組件接收數(shù)據(jù)并存入data
這篇文章主要介紹了Vue子組件props從父組件接收數(shù)據(jù)并存入data的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

