Vue页面切换和a链接的本质区别详解


Posted in Javascript onNovember 12, 2019

Vue-router是伴随着Vue框架出现的路由系统,它也是公认的一种优秀的路由解决方案。在使用Vue-router时候,我们常常会使用其自带的路径跳转组件Link,通过<Link to="path"></Link>实现跳转,这和传统的<a href="path" rel="external nofollow" ></a>何其相似!但它们到底有什么具体的区别呢?

对比<a>,Link组件避免了不必要的重渲染

A -- 通过<a>标签实现页面跳转:(图中的例子将会在下面详细解答)

图一

Vue页面切换和a链接的本质区别详解

图二

Vue页面切换和a链接的本质区别详解

图三

Vue页面切换和a链接的本质区别详解

B --通过<Link>组件实现页面跳转:

图一

Vue页面切换和a链接的本质区别详解

图二

Vue页面切换和a链接的本质区别详解

只更新变化的部分从而减少DOM性能消耗

Vue的创新之处在于,它利用虚拟DOM的概念和diff算法实现了对页面的"按需更新",Vue-router很好地继承了这一点,譬如上图所示,导航组件和三个Tab组件(通过...,通过...,通过...)的重渲染是我们不希望看到的,因为无论跳转到页面一或是页面二,它只需要渲染一次就够了。<Link>组件帮助我们实现了这个愿望,反观<a>标签,每次跳转都重渲染了导航组件和Tab组件试想一下,在一个浩大的项目里,这多么可怕!我们的"渲染"做了许多"无用功",而且消耗了大量弥足珍贵的DOM性能!

以上这篇Vue页面切换和a链接的本质区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript通过class来获取元素实现代码
Feb 20 Javascript
node.js正则表达式获取网页中所有链接的代码实例
Jun 03 Javascript
jQuery中$(function() {});问题详解
Aug 10 Javascript
AngularJS控制器controller正确的通信的方法
Jan 25 Javascript
浅谈JavaScript中的属性:如何遍历属性
Sep 14 Javascript
vue实现前进刷新后退不刷新效果
Jan 26 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
详解Eslint 配置及规则说明
Sep 10 Javascript
angular将html代码输出为内容的实例
Sep 30 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 Javascript
vue页面引入three.js实现3d动画场景操作
Aug 10 Javascript
JS数组方法some、every和find的使用详情
Oct 05 Javascript
vue 中几种传值方法(3种)
Nov 12 #Javascript
Vue 中 a标签上href无法跳转的解决方式
Nov 12 #Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
Nov 12 #Javascript
vue.js 实现a标签href里添加参数
Nov 12 #Javascript
VUEX 数据持久化,刷新后重新获取的例子
Nov 12 #Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
Nov 12 #Javascript
实现vuex与组件data之间的数据同步更新方式
Nov 12 #Javascript
You might like
android上传图片到PHP的过程详解
2015/08/03 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
基于javascript实现的快速排序
2016/12/02 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
Python json模块使用实例
2015/04/11 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
Python之父谈Python的未来形式
2016/07/01 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
Python实现动态图解析、合成与倒放
2018/01/18 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
儿童python练习实例
2018/05/27 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
介绍下java.util.Arrays类
2012/10/16 面试题
企业管理专业个人求职信范文
2013/09/24 职场文书
英文简历中的自荐信范文
2013/12/14 职场文书
优秀求职信
2014/05/29 职场文书
2015年环保局工作总结
2015/05/22 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL