vue生态系统之vue-router
一、vue-router安装与使用
1、安装
进入项目目录中安装vue-router模块
E:\vueProject\webpackProject>cnpm install vue-router --save
2、在项目main.js文件中导入模块
import VueRouter from 'vue-router'
3、让Vue知道你使用路由
Vue.use(VueRouter);
此时即完成了vue-router的安装配置:

2、使用路由
vue-router方便做单页面的应用,将组件 (components) 映射到路由 (routes),然后告诉 Vue Router 在哪里渲染它们。
为方便起见,先建一个头部的导航,这里使用ElementUI的使用中的导航,进行点击切换路由:
(1)建立组件
导航条中有几个选项,建立几个组件,用于切换路由:

(2)定义路由组件
在main.js文件中引入创建的组件,这里它们就是路由组件了
//定义路由组件
import Vintroduce from 'Vhcomponents/Vintroduce'
import Vproduct from 'Vhcomponents/Vproduct'
import Vculture from 'Vhcomponents/Vculture'
(3)创建 router 实例
在main.js文件中创建router 实例,并且将路由配置注入(一个路由对应一个路由组件)
// 创建 router 实例,然后传 `routes` 配置,也就是一个路由对应一个组件
const router = new VueRouter({
routes:[
{ path: '/', component: Vintroduce },
{ path: '/product', component: Vproduct },
{ path: '/culture', component: Vculture },
]
});
(4)挂载路由实例
在main.js文件中挂载router 实例
//将路由router挂载到Vue根实例上,一个项目只有一个根实例
new Vue({
el: '#app',
router, //相当于router:router
render: h => h(App) //加载组件
});
(5)在父组件中进行渲染也就是App.vue组件
<template>
<!--页面结构-->
<div id="app">
<el-menu
:default-active="activeIndex2"
class="el-menu-demo"
mode="horizontal"
background-color="#545c64"
text-color="#fff"
active-text-color="#ffd04b"> <el-menu-item index="1"> <router-link to="introduce">公司介绍</router-link></el-menu-item>
<el-menu-item index="3" ><router-link to="product">产品管理</router-link></el-menu-item>
<el-menu-item index="4"><router-link to="culture">公司文化</router-link></el-menu-item>
</el-menu> <!-- 路由出口 -->
<!-- 路由匹配到的组件将渲染在这里 -->
<router-view></router-view>
</div>
</template>
上述渲染的过程中router-link相当于a标签,to相当于href属性,<router-view></router-view>为路由出口,这样就完成了路由的切换。

可以在main.js文件中: // 加入mode:history参数
const router = new VueRouter({
mode:'history',
routes: [ {path: '/introduce', component: Vintroduce},
{path: '/product', component: Vproduct},
{path: '/culture', component: Vculture},
]
});
去掉地址中的#
二、完整页面结构中使用
一般页面包含头部header、content、footer三部分,这三部分是三个组件,现在在主页面中App.vue中引入三个组件,而不是直接进行router-link
<template>
<!--页面结构-->
<div id="app">
<!--使用组件-->
<Vheader></Vheader>
<Vcontent v-bind:departArray="depart" v-on:onclick="addOneDate"></Vcontent> <!--绑定自定义属性-->
<Vfooter></Vfooter>
</div>
</template>

然后再Vheader中进行router-link

而在Vcontent组件中渲染各个页面的内容

vue生态系统之vue-router的更多相关文章
- Vue 2.0 + Vue Router + Vuex
用 Vue.js 2.x 与相配套的 Vue Router.Vuex 搭建了一个最基本的后台管理系统的骨架. 当然先要安装 node.js(包括了 npm).vue-cli 项目结构如图所示: ass ...
- vue教程3-05 vue组件数据传递、父子组件数据获取,slot,router路由
vue教程3-05 vue组件数据传递 一.vue默认情况下,子组件也没法访问父组件数据 <!DOCTYPE html> <html lang="en"> ...
- Vue04——vue自定义事件、Router、Vue-cli、发布上线
一.Vue的自定义事件 点击任何一个按钮,按钮本身计数累加,但是每点击三个按钮中的一个,totalCounter 都要累加. <body> <div id="app&quo ...
- vue生态系统之vuex
一.webpack生成项目 1.webpack 在需要建立项目的目录中进行初始化项目 E:\vueProject>vue init webpack vuexpj ? Project name v ...
- vue & this.$route & this.$router
vue & this.\(route & this.\)router const User = { template: '<div>User</div>' } ...
- Vue学习笔记-Vue.js-2.X 学习(七)===>脚手架Vue-CLI(路由Router)
脚手架Vue-CLI(路由Router) 一 按装(通过新创建脚手架按装),如果在原来的脚手架上按装直接进图型化界面vue ui的插件按装. 二 使用(上面按装下面步骤自动会生成) 第一步:导入路由对 ...
- [转]Vue生态系统中的库
Vue UI组件库 Vuex vux github ui demo:https://github.com/airyland/vux Mint UI 项目主页:http://mint-ui.github ...
- Vue学习笔记-Vue基础入门
此篇文章是本人在学习Vue是做的部分笔记的一个整理,内容不是很全面,希望能对阅读文章的同学有点帮助. 什么是Vue? Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式 ...
- 【Vue】转-Vue.js经典开源项目汇总
版权声明:本文为EnweiTech原创文章,未经博主允许不得转载. https://blog.csdn.net/English0523/article/details/88694219 Vue是什么? ...
- 浅谈 vue实例 和 vue组件
vue实例: import Vue from 'vue'; import app from './app'; import myRouter from './routers'; new Vue({ e ...
随机推荐
- 使用IO流将数据库中数据生成一个文件,结果使用Notepad++打开部分数据结尾出现NUL
场景描述: 项目中通过java代码中从数据库中查询一系列数据,对数据做相应处理,然后通过字符流将数据写如一个新生成的文件中,将该项目部署在linux服务器上,最后生成的文件拿到本地使用notepad+ ...
- php调用系统命令的函数的比较
了解命令的区别并进行直观的选择 这是一篇翻译文章,原作者通过表格的形式更加直观的展现出差异并进行选择 前言 PHP有众多调用系统命令的函数,大致如下: system() exec() passthru ...
- celery使用多队列
生产者: 文件1: 定义任务 #!/usr/bin/env python3 # coding: utf-8 from celery import Celery import settings pw = ...
- 对malloc与free函数的浅识
本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: .函数原型及说明: void *mal ...
- vue 初始化rem
在assets => js => rem.js export default { init () { let sw = document.documentElement.clientWid ...
- 设置overflow:auto无效的解决办法
做项目中经常要用到滚动条,有时候给div设置overflow无效. 遇到这样的问题,只需要在 F12 Elements面板检查一下要设置overflow的元素的宽高是否大于父级元素宽高. (overf ...
- Mina---系统学习
1.为何使用Mina? java提供的BIO.NIO使用的复杂性等原因,导致Mina框架的诞生: 2.什么时候使用Mina? 易于使用 高并发的用户量 被证明的系统: Mina已被全球数以万计的应用使 ...
- Jlink V8固件恢复
使用附件中的PDF文档步骤即可,但是千万千万记得两点,更新系统很关键,很关键 1.WINXP系统 2.32Bit系统 切记切记,其他的win7,winxp 64就不用试着更新了,全部是坑 大概步骤 J ...
- Qt第三方库QCustomPlot——QCustomPlot解读
这个小部件类,对于QCustomPlot的所有方面都有所体现 下面阅读它的函数: 函数组织顺序为: 基本设置---添加图线---删除图线---添加额外Item---层次管理---坐标轴管理----导出 ...
- 埃氏筛+线段树——cf731F
从2e5-1依次枚举每个数作为主显卡,然后分段求比它大的数的个数,这里的复杂度是调和级数ln2e5,即埃氏筛的复杂度.. #include<bits/stdc++.h> using nam ...