Vue-router路由使用,单页面的实现
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路由使用,单页面的实现的更多相关文章
- Vue 子路由 与 单页面多路由 的区别
本文地址:http://www.cnblogs.com/veinyin/p/7911292.html 最近学完了基础课程,打算整理一波笔记,对基本概念梳理一遍,惊觉对子路由和单页面多路由混淆的一塌糊涂 ...
- 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI
一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...
- Vue --6 router进阶、单页面应用(SPA)带来的问题
一.Vue-router进阶 回顾学过的vue-router,并参考官方文档学习嵌套路由等路由相关知识. 二.单页面应用(SPA)带来的问题 1.虽然单页面应用有优点,但是,如果后端不做服务器渲染(h ...
- vue router路由(三)
当环境搭建及Vue语法与指令都有所了解,该说下router. build目录是打包配置文件 (不建议动) config是vue项目基本配置文件 dist是构建后文件 js 手动创建 (根据需要) no ...
- Vue系列:Vue Router 路由梳理
Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数. ...
- Vue Router路由管理器介绍
参考博客:https://www.cnblogs.com/avon/p/5943008.html 安装介绍:Vue Router 版本说明 对于 TypeScript 用户来说,vue-router@ ...
- Vue Router 路由守卫:完整的导航解析流程
完整的导航解析流程 1 导航被触发. 2 在失活的组件里调用离开守卫. 3 调用全局的 beforeEach 守卫. 4 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+). ...
- vue环境搭建及单页面标签切换实例
复习 """ 1.指令: v-once: <p v-once>{{ msg }}</p> v-cloak: 防止页面加载抖动 v-show:绑定的 ...
- Vue Router路由守卫妙用:异步获取数据成功后再进行路由跳转并传递数据,失败则不进行跳转
问题引入 试想这样一个业务场景: 在用户输入数据,点击提交按钮后,这时发起了ajax请求,如果请求成功, 则跳转到详情页面并展示详情数据,失败则不跳转到详情页面,只是在当前页面给出错误消息. 难点所在 ...
- 关于js单页面实现跳转原理以及利用angularjs框架路由实现单页面跳转
还记得我们刚开始学习html时使用的锚节点实现跳转吗? <a href="#target">我想跳转至目标位置</a> <p>第一条</p ...
随机推荐
- oracle 分组函数执行分析
先上例了: select job as "JOB1", avg(sal) as "avg sal" from scott.emp group by " ...
- node基础—概述与安装
什么是Nodejs 简单的说 Node.js 就是运行在服务端的 JavaScrip(编写高性能网络服务器的JavaScript工具包(用js开发服务端程序))t. JS是脚本语言,脚本语言都需要一个 ...
- 安装Anaconda 之后使用ubuntu自带python
我们知道,Ubantu系统会自带python,当你在terminal窗口中输入python,就会显示默认安装的python的信息.比如我的16.04就自带了python2.7和3.5,但是安装了Ana ...
- 【转】AJAX请求和普通HTTP请求区别
两者本质区别: AJAX通xmlHttpRequest象请求服务器服务器接受请求返数据实现刷新交互 普通http请求通httpRequest象请求服务器接受请求返数据需要页面刷新 AJAX请求 普通请 ...
- 【html5】解决HTML5新标签不兼容的问题
html5标签: 1.语义化好 -> SEO a). 程序交流方便 b). 搜索引擎友好 baidu -> 不认识 google 2.本身不兼容,想兼容低版本,请使用如下方法: 方式一:使 ...
- 008_python内置语法
一. 参考:http://www.runoob.com/python/python-built-in-functions.html (1)vars() 描述 vars() 函数返回对象object的属 ...
- 001_HTTP参数中Etag的重要性
在研究tornado时,有个Etag比较好奇,从网上查询摘录如下:
- 工具篇-Java中一些utils
下边是整理的一些Java开发的utils,顺便吐槽下新浪博客的编辑器排版跟我写的博客一样 烂,所以改用博客园 一.字符串 1. Java中String与其他类型之间的转换 String与日期对象 pu ...
- Feature Extractor[googlenet v1]
1 - V1 google团队在模型上,更多考虑的是实用性,也就是如何能让强大的深度学习模型能够用在嵌入式或者移动设备上.传统的想增强模型的方法无非就是深度和宽度,而如果简单的增加深度和宽度,那么带来 ...
- jquery()后续版本中,live()取消后使用on()实现功能写法
今天做项目想用live()功能,写完打开浏览器发现报错 然后查了查发现自己用的是jquery是jquery-2.1.1.min.js,而jquery早就取消了live()方法,在后续版本里都已经没有使 ...