什么是路由?

即通过互联网把信息从源地址传输到目的地址的活动

路由决定数据包从来源到目的地的路径

转送将输入端的数据转移到合适的输出端

后端路由:

早起网站开发全部由服务器渲染,例如

Java的JSP,.NET的ASP,PHP

服务器直接生产渲染好的HTML页面,返回给客户端展示

一个网站非常多的页面,服务器如何处理?
每个页面都有自己对应的网路地址URL:

Url会发送到服务器,服务器根据URL进行匹配,并且交给一个Controller进行处理

控制器处理之后最终生成数据或者页面,返回给前端

好处:

  1. 有利于SEO优化

缺点:

  1. 整个页面开发,由后端程序员编写和维护
  2. 前端人员开发页面必须掌握后端语言才可以开发
  3. 逻辑和数据混杂一起,维护困难

前端路由:

Ajax使得数据的传输不再需要服务器编写服务器页面,后端只提供API(地址)传输数据

前端使用Ajax接收数据:再使用JavaScript渲染数据

优点:

  1. 职责明确,后端专注逻辑与数据,前端专注于渲染,可视化,用户体验
    移动端出现后,后端不需要任何处理,继续使用之前的API即可
    前后端是一个趋势

【Vue - Router】

Vue开发属于前后端分离的单页面应用,由前端来维护路由

通过改变url而页面不进行整体的刷新

目前流行的前端三大框架:都由自己的路由实现:

  1. Angular : ngRouter
  2. React : reactRouter
  3. Vue : vue-router

vue-Router是vue官方提供的路由插件,和vue本身深度集成

适用于单页面构建:

vue-Router单页应用,页面的切换,即组件的切换:

【安装vue-router】

新建一个项目

  1. vue create 项目目录名称

  1. npm install vue-router --save

1、导入路由对象,调用Vue.use(VueRouter)

2、创建路由实例,传入路由映射配置

3、在Vue中挂载创建的路由实例

创建router目录和index.js

index.js编写:

  1. import Vue from 'vue';
  2. import VueRouter from "vue-router"; // 导入路由插件
  3.  
  4. Vue.use(VueRouter); //注入路由插件
  5. const routes = []; // 定义路由
  6. const router = new VueRouter({ // 创建路由实例
  7. routes
  8. });
  9. export default router; // 导出路由实例

在main.js引入路由:

  1. import Vue from 'vue'
  2. import App from './App.vue'
  3. import router from "./router"; // ./router/index.js 因为是index.js,可以默认不写
  4.  
  5. Vue.config.productionTip = false
  6.  
  7. new Vue({
  8. render: h => h(App),
  9. router
  10. }).$mount('#app')

删除HelloWorld.vue

在App.vue取消组件:

  1. <template>
  2. <div id="app">
  3. </div>
  4. </template>
  5.  
  6. <script>
  7. // import HelloWorld from './components/HelloWorld.vue'
  8.  
  9. export default {
  10. name: 'App',
  11. }
  12. </script>
  13.  
  14. <style lang="stylus">
  15. #app
  16. font-family Avenir, Helvetica, Arial, sans-serif
  17. -webkit-font-smoothing antialiased
  18. -moz-osx-font-smoothing grayscale
  19. text-align center
  20. color #2c3e50
  21. margin-top 60px
  22. </style>

创建一个首页组件和一个样本组件

  1. <template>
  2. <div>
  3. <h2>这是首页组件</h2>
  4. <p>这是首页的内容</p>
  5. </div>
  6. </template>
  7.  
  8. <script>
  9. export default {
  10. name: "home"
  11. }
  12. </script>
  13.  
  14. <style scoped>
  15.  
  16. </style>

样本:

  1. <template>
  2. <div>
  3. <h2>样本的标题</h2>
  4. <p>样本的标签</p>
  5. </div>
  6. </template>
  7.  
  8. <script>
  9. export default {
  10. name: "sample"
  11. }
  12. </script>
  13.  
  14. <style scoped>
  15.  
  16. </style>

【使用vue-router】

使用步骤:

1、创建路由组件:

2、配置路由映射,将路由和组件进行关联

3、使用路由

配置路由(index.js):

  1. import Vue from 'vue';
  2. import VueRouter from "vue-router"; // 导入路由插件
  3.  
  4. // 导入路由组件
  5. import home from "../components/home";
  6. import sample from "../components/sample";
  7.  
  8. Vue.use(VueRouter); //注入路由插件
  9.  
  10. const routes = [ // 定义路由
  11. { path : '/home', component : home },
  12. { path : '/sample', component : sample }
  13. ];
  14.  
  15. const router = new VueRouter({ // 创建路由实例
  16. routes
  17. });
  18.  
  19. export default router; // 导出路由实例

两个必要的组件:

  1. router-link : 设置路由跳转
  2. router-view : 显示当前路由组件

使用组件(App.vue):

  1. <template>
  2. <div id="app">
  3. <h2>这是App.vue组件的标题</h2>
  4. <router-link to="/home"> 首页 </router-link>
  5. <br>
  6. <router-link to="/sample"> 样本 </router-link>
  7. <router-view></router-view>
  8. </div>
  9. </template>
  10.  
  11. <script>
  12.  
  13. export default {
  14. name: 'App'
  15. }
  16. </script>
  17.  
  18. <style lang="stylus">
  19. #app
  20. font-family Avenir, Helvetica, Arial, sans-serif
  21. -webkit-font-smoothing antialiased
  22. -moz-osx-font-smoothing grayscale
  23. text-align center
  24. color #2c3e50
  25. margin-top 60px
  26. </style>

启动项目,访问页面:

当点击样本时:

【Router设置首页默认路径】

  1. import Vue from 'vue';
  2. import VueRouter from "vue-router"; // 导入路由插件
  3.  
  4. import home from "../components/home";
  5. import sample from "../components/sample";
  6.  
  7. Vue.use(VueRouter); //注入路由插件
  8. const routes = [
  9. { path : '/', redirect : home },
  10. { path : '/home', component : home },
  11. { path : '/sample', component : sample }
  12. ]; // 定义路由
  13. const router = new VueRouter({ // 创建路由实例
  14. routes
  15. });
  16. export default router; // 导出路由实例

访问/重定向到home

默认情况,路径的改变使用的是URL的hash,如果我们希望使用的是H5的History模式,

可以进行如下配置:

  1. import Vue from 'vue';
  2. import VueRouter from "vue-router"; // 导入路由插件
  3.  
  4. import home from "../components/home";
  5. import sample from "../components/sample";
  6.  
  7. Vue.use(VueRouter); //注入路由插件
  8. const routes = [
  9. { path : '/', redirect : home },
  10. { path : '/home', component : home },
  11. { path : '/sample', component : sample }
  12. ]; // 定义路由
  13. const router = new VueRouter({ // 创建路由实例
  14. routes,
  15. mode : 'history'
  16. });
  17. export default router; // 导出路由实例

【Router-Link再补充】

to属性就是a标签的href属性,值是具体的访问地址

其他属性:

  1. tag
  2. 指定router-link会被渲染成什么标签,默认a标签
  3. 例如:
  4. <router-link to="/sample" tag="li> 样本 </router-link>
  5.  
  6. active-class
  7. 被点击后自动给当前元素设置一个router-link-active的class
  8. 作用是改变激活状态下的显示

【Vue】11 VueRouter Part1 概述 & 入门的更多相关文章

  1. 每天记录一点:NetCore获得配置文件 appsettings.json vue-router页面传值及接收值 详解webpack + vue + node 打造单页面(入门篇) 30分钟手把手教你学webpack实战 vue.js+webpack模块管理及组件开发

    每天记录一点:NetCore获得配置文件 appsettings.json   用NetCore做项目如果用EF  ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如S ...

  2. Vue.js + Webpack + ECMAScript 6 入门教程

    Vue.js学习教程 1.Vue.js——60分钟快速入门 2.Vue.js——60分钟组件快速入门(上篇) 3.Vue.js——60分钟组件快速入门(下篇) 4.Vue.js——基于$.ajax实现 ...

  3. spring boot + vue + element-ui全栈开发入门——基于Electron桌面应用开发

     前言 Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并到同一个运行时环 ...

  4. 【07】 vue 之 Vue-router

    注意: vue-router@2.x 只适用于 Vue 2.x 版本. vue-router@1.x 对应于Vue1.x版本. 的Github地址:vue-router 文档地址 7.2. vue-r ...

  5. webpack 配置 Vue 多页应用 —— 从入门到放弃

    webpack 配置 Vue 多页应用 -- 从入门到放弃 一直以来,前端享有无需配置,一个浏览器足矣的优势,直到一大堆构建工具的出现,其中 webpack 就是其中最复杂的一个,因此出现了一个新兴职 ...

  6. 基于Vue+Vuex+Vue-Router+axios+mint-ui的移动端电商项目

    第一步:安装Node 1.打开NodeJS的官网,下载和自己系统相配的NodeJS的安装程序,包括32位还是64位一定要选择好,否则会出现安装问题. 下载地址:https://nodejs.org/e ...

  7. 我的音乐盒子(nodejs7 + koa2 + vue + vuex + vue-router)

    你们知道的,nodejs对jser来说,是个好东西,快快的,自从接触nodejs后,总想弄点东西. 这弄个啥了,一天打开百度音乐盒,哟,自己弄一个如何了,好啊好啊. 后台: nodejs 7 + ko ...

  8. use vue vuex vue-router, not use webpack

    vue,vuex,vue-router放在一起能做什么?不用webpack之类的打包工具使用他们是否可行?各位道友在初学vue时是否有这样的困惑.因为现代构建前端项目的一般模式是: 安装webapck ...

  9. [ABP开源项目]--vue+vuex+vue-router+EF的权限管理系统

    好久没写文字了,当然大家也不期待嘛,反正看代码就行了. 演示网站 首先说下这个项目吧. 如标题一样是基于VUE+.NET开发的框架,也是群友一直吼吼吼要一个vue版本的ABP框架. 我们先来看看首页吧 ...

  10. Vue路由vue-router

    前面的话 在Web开发中,路由是指根据URL分配到对应的处理程序.对于大多数单页面应用,都推荐使用官方支持的vue-router.Vue-router通过管理URL,实现URL和组件的对应,以及通过U ...

随机推荐

  1. Vulkan Support Check and Dynamic Loader C++ code sample

    很多时候不想静态依赖VulkanSDK所提供的静态库,因为会遇到一些过早的电脑不支持vulkan, 那么就需要使用动态加载vulkan-1.dll(for Windows)或libMoltenVK.d ...

  2. UDP端口探活的那些细节

    一 背景 商业客户反馈用categraf的net_response插件配置了udp探测, 遇到报错了,如图  udp是无连接的,无法用建立连接的形式判断端口. 插件最初的设计是需要配置udp的发送字符 ...

  3. python-API开发zk客户端

    前面于超老师讲完了,zk运维的基本命令行玩法,更多的还是开发需要通过代码和zk结合处理. 大多数场景是java后端去操作. 这里我们以运维更友好的python来学习. 1.kazoo模块 zookee ...

  4. 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

    Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的.而 Mybatis 在查询关联对象或关联集合 ...

  5. 使用腾讯元宝+markmap生成思维导图

    AI可以帮助我们进行提炼和总结, 节省了大量搜索资料和查阅的时间,像上图这张思维导图,就是使用腾讯元宝大模型进行内容提炼,再使用markmap生成思维导图,下面讲解下详细实现步骤: 一.工具准备 腾讯 ...

  6. uniapp windows 上架 apple store

    香蕉云 蒲公英 ios上架助手iOS Development 开发!先用上架助手在certificates里面生成一个p12文件在profiles里面生成mobileprovision文件就欧克了 需 ...

  7. 使用Microsoft.SemanticKernel基于本地运行的Ollama大语言模型实现Agent调用函数

    大语言模型的发展日新月异,记得在去年这个时候,函数调用还是gpt-4的专属.到今年本地运行的大模型无论是推理能力还是文本的输出质量都已经非常接近gpt-4了.而在去年gpt-4尚未发布函数调用时,智能 ...

  8. yolov1-yolov5 网络结构&正负样本筛选&损失计算

    学习yolo系列,最重要的,最核心的就是网络模型.正负样本匹配.损失函数等三个方面.本篇汇总了yolov1-yolov5等5个版本的相关知识点,主要看点是在yolo框架搭建.初学者可以通过相关篇章搭建 ...

  9. Tutorial: How to install GNU MCU Eclipse?

    Overview For more flexibility and upgradeability, GNU MCU Eclipse is not packed as a all-inclusive s ...

  10. 【冷启动#1】实用的MySQL基础

    简单安装一下MySQL Windows下(5.7.x) 本体安装 1.首先先下载安装包,名字如下: mysql-5.7.19-winx64.zip 2.配置环境变量,将解压之后的bin目录添加一下 3 ...