1.安装路由系统

NPM
npm install vue-router

2.在main.js中进入引用

import VueRouter from 'vue-router'

3.创建三个空的组件:

Vcourse.vue

<template>
<div class="course">
课程
</div>
</template> <script>
export default {
name: "vcourse",
data(){
return { }
}
}
</script> <style scoped> </style>

Vmain.vue

<template>
<div class="course">
课程
</div>
</template> <script>
export default {
name: "vcourse",
data(){
return { }
}
}
</script> <style scoped> </style>

Vmarked.vue

<template>
<div class="course">
课程
</div>
</template> <script>
export default {
name: "vcourse",
data(){
return { }
}
}
</script> <style scoped> </style>

4.在main.js中引入这三个组件

//引入的三个组件
//定义路由组件。可以从其他文件 import过来
import Vmain from './components/Vmain'
import Vcourse from './components/Vcourse'
import Vmarked from './components/Vmarked'

5.使用vuerouter.use()方法

Vue.use(VueRouter);

6.定义我们的路由对象:

//定义我们的路由对象,每一个路由映射一个组件
const router = new VueRouter({
mode:'history',
routes:[
{path:'/',component:Vmain},
{path:'/course',component:Vcourse},
{path:'/mark',component:Vmarked} ]
});

7.挂载

//4 创建和挂载实例
new Vue({
el: '#app',
router,
render: h => h(App)
});

8.渲染

 <div class="app">
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<ul>
<li><router-link to="/">首页</router-link></li>
</ul>
<ul>
<li><router-link to="/course">课程</router-link><button class="btn-success">88888</button></li>
</ul>
<ul>
<li><router-link to="/mark">编辑器</router-link></li>
</ul> <!--路由出口-->
<!--路由匹配到的组件将渲染在这里-->
<router-view></router-view> </div>

这里把router-link渲染成了a标签,to渲染成了href.

这样一个单页面应用就出来了。

效果就是点击三个a标签,分别加载不同的组件,而页面不会刷新,路由在更新。

那个888,是在最后测试了一下bootstrap的 button,看bootstrap导入了没有。

最后附上所有的全部代码:

app.vue

<!-- 一个组件由三部分组成 -->
<template>
<!-- 页面的结构 -->
<div class="app">
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<ul>
<li><router-link to="/">首页</router-link></li>
</ul>
<ul>
<li><router-link to="/course">课程</router-link><button class="btn-success">88888</button></li>
</ul>
<ul>
<li><router-link to="/mark">编辑器</router-link></li>
</ul> <!--路由出口-->
<!--路由匹配到的组件将渲染在这里-->
<router-view></router-view> </div>
</template> <script>
//页面的业务逻辑
export default {
name: 'app',
data() { //data必须是一个函数
return { //必须return。
msg:"hello"
}
},
}
</script> <style scoped>
*{
padding: 0;
margin: 0;
}
</style>

main.js

import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router' //引入的三个组件
//定义路由组件。可以从其他文件 import过来
import Vmain from './components/Vmain'
import Vcourse from './components/Vcourse'
import Vmarked from './components/Vmarked' Vue.use(VueRouter); //定义我们的路由对象,每一个路由映射一个组件
const router = new VueRouter({
mode:'history',
routes:[
{path:'/',component:Vmain},
{path:'/course',component:Vcourse},
{path:'/mark',component:Vmarked} ]
}); //4 创建和挂载实例
new Vue({
el: '#app',
router,
render: h => h(App)
});

三个组件代码在上面已有。其实就是三个空模板。

Vue-router路由使用,单页面的实现的更多相关文章

  1. Vue 子路由 与 单页面多路由 的区别

    本文地址:http://www.cnblogs.com/veinyin/p/7911292.html 最近学完了基础课程,打算整理一波笔记,对基本概念梳理一遍,惊觉对子路由和单页面多路由混淆的一塌糊涂 ...

  2. 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI

    一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...

  3. Vue --6 router进阶、单页面应用(SPA)带来的问题

    一.Vue-router进阶 回顾学过的vue-router,并参考官方文档学习嵌套路由等路由相关知识. 二.单页面应用(SPA)带来的问题 1.虽然单页面应用有优点,但是,如果后端不做服务器渲染(h ...

  4. vue router路由(三)

    当环境搭建及Vue语法与指令都有所了解,该说下router. build目录是打包配置文件 (不建议动) config是vue项目基本配置文件 dist是构建后文件 js 手动创建 (根据需要) no ...

  5. Vue系列:Vue Router 路由梳理

    Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数. ...

  6. Vue Router路由管理器介绍

    参考博客:https://www.cnblogs.com/avon/p/5943008.html 安装介绍:Vue Router 版本说明 对于 TypeScript 用户来说,vue-router@ ...

  7. Vue Router 路由守卫:完整的导航解析流程

    完整的导航解析流程 1 导航被触发. 2 在失活的组件里调用离开守卫. 3 调用全局的 beforeEach 守卫. 4 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+). ...

  8. vue环境搭建及单页面标签切换实例

    复习 """ 1.指令: v-once: <p v-once>{{ msg }}</p> v-cloak: 防止页面加载抖动 v-show:绑定的 ...

  9. Vue Router路由守卫妙用:异步获取数据成功后再进行路由跳转并传递数据,失败则不进行跳转

    问题引入 试想这样一个业务场景: 在用户输入数据,点击提交按钮后,这时发起了ajax请求,如果请求成功, 则跳转到详情页面并展示详情数据,失败则不跳转到详情页面,只是在当前页面给出错误消息. 难点所在 ...

  10. 关于js单页面实现跳转原理以及利用angularjs框架路由实现单页面跳转

    还记得我们刚开始学习html时使用的锚节点实现跳转吗? <a href="#target">我想跳转至目标位置</a> <p>第一条</p ...

随机推荐

  1. 7. svg学习笔记-图案和渐变

    之前,我们仅仅使用纯色来为图形填充颜色和绘制轮廓,除此之外,我们还可以使用图案和渐变来填充图形或者是绘制轮廓. 图案 图案的效果类似于,在网页中给一个元素指定背景图像,当背景图像的尺寸小于元素的尺寸的 ...

  2. Linux-Centos7系统下安装python2并与python3版本共存

    问题描述: 最近有个需求是想在centos下安装python3.5 因为django这边用到是这个版本 1.查看系统版本和python版本 Centos7.6版本默认安装的是python2.7.5版本 ...

  3. 安全之路 —— 利用APC队列实现跨进程注入

    简介 在之前的文章中笔者曾经为大家介绍过使用CreateRemoteThread函数来实现远程线程注入(链接),毫无疑问最经典的注入方式,但也因为如此,这种方式到今天已经几乎被所有安全软件所防御.所以 ...

  4. {windows故障}关于WIN7故障模块StackHash_0a9e解决方法

    问题背景:我给同事重装好系统后,想用驱动精灵(网卡版)给新系统安装驱动,但是在安装驱动精灵的过程中老是出现标题的问题,windows停止工作,导致无法安装,最后看到这两个方法后,把网络适配器禁用,然后 ...

  5. Python爬虫-02:HTTPS请求与响应,以及抓包工具Fiddler的使用

    目录 1. HTTP和HTTPS 1.1. HTTP的请求和响应流程:打开一个网页的过程 1.2. URL 2. 客户端HTTP请求 3. Fiddler抓包工具的使用 3.1. 工作原理 3.2. ...

  6. 2018-10-18读文献总结之DCB码分多址、零基线、信号产生

    ---恢复内容开始--- 今天心血来潮,想开始把自己读文献的过程和每篇文献的收获总结一下,不知道CSDN怎么回事,一直登陆不进去,搞得我注册了一个博客园的账户,博客园新注册的还需要认证,但是很快,所以 ...

  7. 【转】vue父子组件之间的通信

    vue父子组件之间的通信 在vue组件通信中其中最常见通信方式就是父子组件之中的通性,而父子组件的设定方式在不同情况下又各有不同.最常见的就是父组件为控制组件子组件为视图组件.父组件传递数据给子组件使 ...

  8. centos7下安装docker(14安装docker machine)

    之前我们做的实验都是在一个host上面的,其实在真正的环境中有多个host,容器在这些host上面启动,运行,停止和销毁,相关容器会通过网络相互通信,无论他们是否运行在相同的host上面. 对于这种歌 ...

  9. UVA1613-K-Graph Oddity(贪心)

    Problem UVA1613-K-Graph Oddity Accept: 108  Submit: 884Time Limit: 3000 mSec Problem Description Inp ...

  10. 关于reduce的理解

    什么是reduce reduce这个词字面上来讲,大多称作“归约”,但这个词太专业了,以至于第一眼看不出来意思.我更倾向于解释为“塌缩”,这样就形象多了.对一个n维的情况进行reduce,就是将执行操 ...