阿珊详解Vue路由的两种模式:hash模式与history模式

在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

文章目录

    • 摘要:
    • 引言:
    • 正文:
      • 1. 🔧 hash模式
      • 2. 🔧 history模式
      • 3. 🔧 两种模式的对比
    • 🌟 总结
    • 参考资料:

摘要:

🤔 Vue路由提供了两种模式:hash模式与history模式。本文将介绍这两种模式的特点与使用场景,帮助读者更好地掌握Vue路由的配置与应用。👩‍💻

引言:

🌈 Vue.js框架以其简洁的语法和声明式的数据绑定而受到开发者的喜爱。在单页面应用(SPA)中,路由管理是不可或缺的功能。Vue路由提供了两种模式:hash模式与history模式,以满足不同的开发需求。在这篇文章中,我将带你探究这两种模式的特点和应用,以期帮助你更好地运用Vue路由。🚀

正文:

1. 🔧 hash模式

在 web 开发中,hash 模式是一种页面跳转的方式,它不会改变浏览器的 URL,但页面会重新加载。

hash 模式的 URL 后面会跟一个 #,例如:http://example.com/#about

在 Vue 项目中,hash 模式通常用于前端路由。Vue 前端路由使用 hash 模式,是因为 hash 模式不需要后端支持,而且可以在不改变 URL 的同时实现页面跳转和数据更新。

Vue 项目使用 hash 模式的方法如下:

  1. 安装 vue-router:首先,需要安装 vue-router。在项目中引入 vue-router,可以通过 npm 或 yarn 安装:

    npm install vue-router --save
    

    yarn add vue-router
    
  2. 配置路由:在项目中创建一个名为 router.js 的文件,用于配置路由。首先,引入 vue 和 vue-router:

    import Vue from 'vue'
    import Router from 'vue-router'Vue.use(Router)
    

    然后,定义路由规则,并创建一个 Router 实例:

    export default new Router({mode: 'hash',routes: [{path: '/about',name: 'about',component: () => import('@/components/About.vue')},{path: '/',name: 'home',component: () => import('@/components/Home.vue')}]
    })
    

    这里,mode 设置为 ‘hash’,表示使用 hash 模式。

  3. 在 main.js 中引入 router:在 main.js 文件中,引入刚刚创建的 router.js 文件:

    import Vue from 'vue'
    import App from './App.vue'
    import router from './router'new Vue({router,render: h => h(App)
    }).$mount('#app')
    
  4. 使用 router-view 组件:在需要跳转页面的地方,使用 router-view 组件。当点击 router-link 时,页面会根据配置的 hash 值进行跳转:

    <router-view></router-view>
    

总结来说,hash 模式是一种页面跳转的方式,不会改变浏览器的 URL,但页面会重新加载。在 Vue 项目中,hash 模式通常用于前端路由,通过 vue-router 实现。

2. 🔧 history模式

在 Web 开发中,history 模式是一种页面跳转的方式,它会在浏览器的 URL 栏中显示跳转后的页面地址,并且页面不会重新加载。history 模式的 URL 看起来和普通的 HTTP URL 一样,例如:http://example.com/about。

在 Vue 项目中,history 模式通常用于前端路由。Vue 前端路由支持 history 模式,使得页面跳转看起来更像传统的网站导航。

Vue 项目使用 history 模式的方法如下:

  1. 安装 vue-router:首先,需要安装 vue-router。在项目中引入 vue-router,可以通过 npm 或 yarn 安装:

    npm install vue-router --save
    

    yarn add vue-router
    
  2. 配置路由:在项目中创建一个名为 router.js 的文件,用于配置路由。首先,引入 vue 和 vue-router:

    import Vue from 'vue'
    import Router from 'vue-router'Vue.use(Router)
    

    然后,定义路由规则,并创建一个 Router 实例:

    export default new Router({mode: 'history',routes: [{path: '/about',name: 'about',component: () => import('@/components/About.vue')},{path: '/',name: 'home',component: () => import('@/components/Home.vue')}]
    })
    

    这里,mode 设置为 ‘history’,表示使用 history 模式。

  3. 在 main.js 中引入 router:在 main.js 文件中,引入刚刚创建的 router.js 文件:

    import Vue from 'vue'
    import App from './App.vue'
    import router from './router'new Vue({router,render: h => h(App)
    }).$mount('#app')
    
  4. 使用 router-view 组件:在需要跳转页面的地方,使用 router-view 组件。当点击 router-link 时,页面会根据配置的 history 值进行跳转:

    <router-view></router-view>
    

总结来说,history 模式是一种页面跳转的方式,会在浏览器的 URL 栏中显示跳转后的页面地址,并且页面不会重新加载。在 Vue 项目中,history 模式通常用于前端路由,通过 vue-router 实现。

3. 🔧 两种模式的对比

  • URL表现:hash模式下URL包含#号,而history模式下URL更为简洁。
  • 性能:history模式在部分浏览器中可能会有性能问题,如重复的history.pushState调用。
  • 兼容性:hash模式兼容性更好,但history模式在现代浏览器中得到了广泛支持。

🌟 总结

在本篇文章中,我们详细解析了Vue路由的两种模式:hash模式与history模式。通过对比分析,我们应该对这两种模式有了更深入的了解。在实际开发中,根据项目需求和场景选择合适的模式,将使我们的Vue应用更加高效和优质。🚀

参考资料:

  1. Vue.js官方文档:路由
  2. Vue Router官方文档

🌟 感谢您的阅读!如果您有任何疑问或建议,欢迎在评论区留言。💬

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/519286.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA缓存:小工具

一、google.guava 用到的包 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>20.0</version><scope>compile</scope></dependency>写法 单位 代码 Component publi…

揭秘CPU可视化:探索计算机心脏的神秘之旅

在数字化飞速发展的今天&#xff0c;中央处理器&#xff08;CPU&#xff09;作为计算机的心脏&#xff0c;其复杂度和重要性不言而喻。 中央处理器&#xff0c;这个小小的芯片&#xff0c;却承载着计算机运行的所有指令和数据处理任务。它的内部构造复杂而精密&#xff0c;每一…

阿珊解说Vue中`$route`和`$router`的区别

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

C++之类(一)

1&#xff0c;封装 1.1 封装的引用 封装是C面向对象三大特性之一 封装的意义&#xff1a; 将属性和行为作为一个整体&#xff0c;表现生活中的事物 将属性和行为加以权限控制 1.1.1 封装意义一&#xff1a; 在设计类的时候&#xff0c;属性和行为写在一起&#xff0c;表…

spring整合Junit , Spring整合mybatis

1.spring整合Junit 1.1导入Junit坐标 1.2在test.java文件新建测试文件,开始整合

ChaosBlade故障注入工具--cpu,内存,磁盘占用\IO,网络注入等

前言&#xff1a; 本文介绍一款开源的故障注入工具chaosblade&#xff0c;该工具原本由阿里研发&#xff0c;现已开源&#xff1b;工具特点&#xff1a;功能强大&#xff0c;使用简单。 该工具故障注入包含&#xff1a;cpu&#xff0c;内存&#xff0c;磁盘io&#xff0c;磁盘…

Spring源码:手写AOP

文章目录 一、概念1、AOP是什么&#xff1f;2、相关概念1&#xff09;目标对象Target2&#xff09;通知Advice3&#xff09;连接点Joinpoint4&#xff09;切点Pointcut5&#xff09;切面Aspect6&#xff09;织入Weaving 二、分析三、实现1、实现Advice1&#xff09;前置通知2&a…

Linux系统的进程,看完它,相信你想kill“it“就kill“it“o((>ω< ))o

Linux系统的进程 众所周知&#xff0c;不管在什么系统中&#xff0c;进程和线程都是操作系统中高并发处理中产生了重要的作用。Linux作为一个操作系统&#xff0c;也必须要拥有这两者才可以进行高并发。 进程是资源分配的最小单位。每一个进程都是相互独立的&#xff0c;不管是…

c语言-大小写字母的转换

目录 方法一&#xff1a;库函数直接转换 1、toupper的测试代码 2、tolower的测试代码 方法二&#xff1a;通过修改ASCII码值转换 1、自己实现大写转小写 2、自己实现小写转大写 结语 前言&#xff1a; 在使用c语言写代码时&#xff0c;通常会遇到很多将大小写字母相互…

非线形优化 Matlab和Python (含01规划)

MATLAB&#xff1a;fmincon 在matlab中&#xff0c;一般使用fmincon来解决非线性优化问题 [x,fval,exitflag,output,lambda,grad,hessian]fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 一般使用&#xff1a; [x,fval,exitflag]fmincon(fun,x0,A,b,Aeq,beq,lb,ub,non…

基于C/S架构的在线阅读器

项目简介 本项目实现了用户的基本阅读功能。项目内容涉及到IO&#xff0c;网络编程&#xff0c;C&#xff0c;QT等知识点。本次项目服务器搭建在ubuntu上&#xff0c;客户端ui在QT中实现&#xff0c;客户端和服务器使用套接字通信。 一、基本功能展示 &#xff08;1&#xff…

力扣513 找树左下角的值 Java版本

文章目录 题目描述解题思路代码 题目描述 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 提示: 二…