vue三十二:Vue-Router之一级路由配置

 

Vue-Router
Vue-Router是用来将一个Vue程序的多个页面进行路由的。比如一个Vue程序(或者说一个网站)有登录、注册、首页等模块,那么我们就可以定义/login、/register、/来映射每个模块。

安装:
通过script加载进来:<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>。
通过npm安装:npm install vue-router。
官方文档:https://router.vuejs.org/zh/。
github地址:https://github.com/vuejs/vue-router。
安装和使用说明:https://router.vuejs.org/zh/installation.html
下载地址:https://unpkg.com/vue-router@3.1.6/dist/vue-router.js

 

基本使用:
1. 创建一个`VueRouter`对象:`new VueRouter()`。
2. 在`VueRouter`中,需要传递一个`routes`参数。这个参数是一个数组类型,数组中存储的是对象,对象中最少要有两个属性,一个是`path`,代表`url`,第二个是`component`,代表数据更新的组件。示例代码如下:
```js
let router = new VueRouter({
  routes: [
    {path: "/",component: index},
    {path: "/find",component: find},
    {path: "/friend",component: friend}
  ]
})
```
3. 将`router`传给`Vue`。
4. 把网页中之前的`a`标签,替换成`router-link`。
5. 使用`router-view`指定网页中哪个地方要被更新。

 

准备3个组件

 

在src文件夹下,创建router.js,实例化Router并配置路由映射

 

在主入口main.js中注册router

访问路由,失败

是因为只映射了要加载的组件,但是没有指定加载位置,在根组件app中,预留路由容器:router-view

 

Film

<template>
<div>
film
</div>
</template>

<script>
export default {
name: "Film"
}
</script>

<style scoped>

</style>

Cinema

<template>
<div>
cinema
</div>
</template>

<script>
export default {
name: "Cinema"
}
</script>

<style scoped>

</style>

Center

<template>
<div>
center
</div>
</template>

<script>
export default {
name: "Center"
}
</script>

<style scoped>

</style>

router.js

import Vue from 'vue'
import Router from 'vue-router'

// 导入组件
import Film from "@/views/Film"; // 导入Film组件,@符号是指向src文件夹
import Cinema from "@/views/Cinema";
import Center from "@/views/Center";

Vue.use(Router) // 注册路由插件vue-router

// 实例化Router组件
const router = new Router({
routes: [
{path: '/film', component: Film}, // 访问的前段资源是/film开头的路径,加载Film组件
{path: '/cinema', component: Cinema}, // 访问的前段资源是/cinema开头的路径,加载Cinema组件
{path: '/center', component: Center} // 访问的前段资源是/center开头的路径,加载Center组件
]
})
export default router // 导出router实例

main.js

import Vue from 'vue'
import App from './App.vue'
import router from "./router"; // 导入router.js

Vue.config.productionTip = false

new Vue({
// router: router, // 注册router,名字取为router,此时注册名和实例名一致,可以直接写一个router
router,
render: h => h(App),
}).$mount('#app')

app

<template>
<div>
hello vue

<!-- 路由容器 -->
<router-view></router-view>

</div>
</template>

<script>

export default {
data() {
return {}
},
}
</script>

<style lang="scss">

</style>

 

posted @ 2021-01-20 21:33  向前走。  阅读(1371)  评论(0编辑  收藏  举报