Vue Router路由管理器

一、Vue Router概述

Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。包含的功能有:

  • 嵌套的路由/视图表
  • 模块化的、基于组件的路由配置
  • 路由参数、查询、通配符
  • 基于 Vue.js 过渡系统的视图过渡效果
  • 细粒度的导航控制
  • 带有自动激活的 CSS class 的链接
  • HTML5 历史模式或 hash 模式,在 IE9 中自动降级
  • 自定义的滚动条行为

二、vue router的使用

下面,我们将通过一个小案例来使用Vue的路由管理,该demo将通过使用router来进行不同页面的跳转

1. 新建一个空文件夹,并使用npm进行初始化
vue  init webpack 项目名  
npm install -- 如果没有选自动install的话,需要手动执行该命令
npm run dev


这里我们选择手动安装
启动后项目如图:

2. 打开项目,在components目录下创建自己的两个组件

为了方便演示,此处简单的创建了Food、Cloth两个组件


Food、Cloth两个组件的代码如下:

<template>
  <div>
  <h1>Cloth Sale~</h1>
  <h2>Cloth Sale~</h2>
  <h3>Cloth Sale~</h3>
  </div>
</template>
<script>
    export default {
        name: "Cloth"
    }
</script>
<style scoped>
</style>

<template>
  <div>
  <h1>Food Sale~</h1>
  <h2>Food Sale~</h2>
  <h3>Food Sale~</h3>
  </div>
</template>
<script>
    export default {
        name: "Food"
    }
</script>
<style scoped>
</style>
3. 安装路由,在src目录下创建router文件夹

检查本地有没有vue-router包,没有的话使用npm命令导入
一般来说,如果初始化项目的时候没有自动导入router包,这里是需要手动导入的

npm install vue-router   --save-dev

下载完成后,我们会在我们项目的包中看到



这就代表vue-router的包已经下载好啦

4. 配置路由
import Vue from "vue"
import VueRouter from "vue-router"
// 导入自己的组件
import Cloth from "../components/Cloth";
import Food from "../components/Food";

// 安装路由
Vue.use(VueRouter);

// 配置导出路由 : 这里的话就是配置路由的规则,然后配置可导出后交由Vue实例对象使用
export default new VueRouter({
  routes:[
    {
      path: '/Cloth',   // 跳转的路径自己定义
      name: 'ClothComponent',  // name可以不写
      component: Cloth  // 组件对应上面导入的组件名
    },
    {
      path: '/Food',
      name: 'FoodComponent',
      component: Food
    }
  ]
})



5. 在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/main' //导入我们自定义的路由

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  //为vue实例配置我们自定义的路由
  router: Router,
  components: { App },
  template: '<div><App/><router-view></router-view></div>'
})

6. 在App.vue组件中写一下页面
<template>
  <div id="app">
    <!-- 为了更好的显示效果,此处先注释掉原项目的内容 -->
    <!--<img src="./assets/logo.png">
    <HelloWorld/>-->
    <h1>首页</h1>
    <router-link to="/Cloth">Cloth页面</router-link>
    <router-link to="/Food">Food页面</router-link>
  </div>
</template>

<script>
/*
import HelloWorld from './components/HelloWorld'
*/

export default {
  name: 'App',
  components: {
    /*HelloWorld*/
  }
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

  1. 启动项目 ,执行 npm run dev
    成功后,我们可以根据页面上的链接进行组件的跳转

三、书写过程中一些可能的坑

  1. 在书写组件的template时,需要将元素包含在一个根元素中 , 否则会报错
  2. 配置路由的main.js的时候,routes-component的名称需要和我们import进来的对象名一致,且不需要加引号
  3. 为vue实例配置router的时候,参考官方的导入方式。否则会报错


posted @ 2020-08-19 16:32  moutory  阅读(13)  评论(0编辑  收藏  举报  来源