Vue-Router 前端路由

本文详细介绍了前端路由的概念,对比了后端路由的优缺点,并重点讲解了Vue-Router的使用,包括动态路由、路由懒加载、嵌套路由、导航守卫及其在滚动行为上的应用,旨在帮助开发者深入理解并掌握Vue-Router在单页面应用中的应用。
摘要由CSDN通过智能技术生成

1. 概述

  1. 路由是一个网络工程里面的术语
  2. 路由就是通过互联的网络把信息从源地址传输到目的地址的活动
  3. 后端路由:后端处理URL和页面之间的映射关系
  4. 前端路由:前端处理URL和页面之间的映射关系

2. 后端路由阶段

  1. 早期的网站开发整个HTML页面是由服务器来渲染的。服务器直接生产渲染好对应的HTML页面,返回给客户端进行展示

  2. 但是,一个网站,这么多页面,服务器如何处理呢?
    ●. 每个页面都有自己对应的网址,也就是URL
    ●. URL会发送到服务器,服务器通过正则对该URL进行匹配,并且最后交给一个Controller处理
    ●. Controller进行各种处理,最终生成HTML或者数据,返回给前端
    ●. 这就完成了一个IO操作

  3. 上面的这种操作就是后端路由,当我们页面中需要请求不同的路径内容时,交给服务器来进行处理,服务器渲染好整个页面,并且将页面返回给客户端,这种情况下渲染好的的页面,不需要单独加载任何的js和css,可以直接交给浏览器展示,这样也有利于SEO的优化

  4. 后端路由的缺点:
    ●. 一种情况是整个页面的模块由后端人员来编写和维护
    ●. 另一种情况是前端开发人员如果要开发页面,需要通过PHPjava等语言来编写页面代码
    ●. 而且通常情况下HTML代码和数据以及对应的逻辑会混在一起,编写和维护都是非常糟糕的事情

3. 前端路由阶段

  1. 前后端分离阶段:
    ●. 随着Ajax的出现,有了前后端分离的开发模式
    ●. 后端只提供API来返回数据,前端通过Ajax获取数据,并且可以通过javaScript将数据渲染到页面
    ●. 这样做最大的优点就是前后端责任的清晰,后端专注于数据上,前端专注于交互和可视化上
    ●. 并且当移动端(IOS/Android)出现后,后端不需要进行任何处理,依然使用之前的一套API即可
    ●. 目前很多网站依然采用这种模式开发

  2. 单页面富应用(SPA)阶段:
    ●. 其实SPA最主要的特点就是在前端分离的基础上加了一层前端路由
    ●. 也就是前端来维护一套规则

  3. 前端路由的核心:
    ●. 改变URL,但是页面不进行整体的刷新

4. 认识vue-router

  1. 目前前端流行的三大框架,都有自己的路由实现
    ●. AngularngRouter
    ●. ReactReactRouter
    ●. Vuevue-router

  2. vue-routerVue.js 官方的路由插件,它和Vue.js是深度集成的,适用于构建单页面应用vue-router官网:https://router.vuejs.org/zh/

  3. vue-router 是基于路由和组件的,路由用于设定访问路径,将路径和组件映射起来,在vue-router的单页面应用中,
    页面的路径的改变就是组件的切换

5. 安装和使用vue-router

  1. 安装vue-router:

    npm install vue-router --save
    // 这是运行时依赖
    
  2. 配置路由:

    // 在 src/router/index.js 文件中
    // 1. 导入路由模块:
    	import VueRouter from 'vue-router'
    // 2. 导入Vue模块:
    	import Vue from 'vue' 
    // 3. 导入组件
    	import Home from '../components/Home.vue'   // 这里的 .vue 后缀可以省略
    	import Home from '../components/Avout.vue'
    	
    // 4. 安装路由插件: 
        Vue.use(VueRouter)
    // 5. 创建路由实例,并且传入路由映射配置
    	const router = new VueRouter({
         
         		// 配置路由和组件之间的应用关系
                    routes:[
                    	{
            
        					// 网页重定向:当请求路径为空或者为为某些特点值,可以设置网页显示哪些东西。
           		 			path:'/',         // path:'/' 和 path:'' 一个意思 
            				redirect:'./home'
        				},
                        {
         
                            path:'/home',   // 当文路径文 /home 的时候,显示下面的组件
                            component:Home
                        },
                        {
         
                            path:'/about',
                            component:About
                        }
        			]
    	})
    // 5. 导出路由对象:
    	export default router
    
  3. 使用路由:

    // 1. 在入口文件 main.js 中导入路由模块
    import router from './router'  // 会自动去 router 文件夹中找 index.js 文件
    // 2. 在 Vue 实例中挂载创建的路由实例
    	new Vue({
         
         	el: '#app',
         	router,
         	render: h => h(App)
    	})
    //============================================================================
    // 3. 使用路由:在 Vue 实例的的模板组件 App.vue 中,创建对应的组件标签
            <div id="app">
                <router-link to="/home">首页</router-link>   // router-link 是 vue-router 插件内置的一个标签
                <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值