当前位置: 首页 > news >正文

vue router 里push方法重写为什么要重绑定this

Vue Router 的push方法依赖this

Vue Router 的push方法内部通过this访问关键属性(如this.history):

// Vue Router内部简化实现

VueRouter.prototype.push = function(location) {

// 依赖this访问路由历史和配置

return this.history.push(location);

};

当你重写push时,若直接调用:

let origin = VueRouter.prototype.push

VueRouter.prototype.push = function (location, reslove, reject) {

    if (reslove && reject) {

        origin(this,location, reslove, reject)

       

    }

    else {

        origin(this,location, () => { }, () => { })

    }

}

this会指向全局对象(如window)或undefined(严格模式),导致this.history报错。

所以需显式将this绑定为 Vue Router 实例,确保this.history正确指向路由历史。

即:

let origin = VueRouter.prototype.push

VueRouter.prototype.push = function (location, reslove, reject) {

    if (reslove && reject) {

        origin.call(this,location, reslove, reject)

       

    }

    else {

        origin.call(this,location, () => { }, () => { })

    }

}

http://www.dtcms.com/a/267639.html

相关文章:

  • Xmind功能特点
  • LucidShape 2024.09 最新
  • 2025年3月青少年电子学会等级考试 中小学生python编程等级考试三级真题答案解析(判断题)
  • Docker文件操作、数据卷、挂载
  • Servlet学习
  • FFmpeg——基础知识及FFmpeg框架
  • MySQL GROUP_CONCAT函数实现列转行
  • 技术管理核心知识体系:从架构到实践的全方位指南
  • DPDK 网卡驱动
  • 堆叠初始化与配置同步工作机制(以IRF2.0为例)
  • Adobe LiveCycle Designer 中脚本的层级关系
  • 许船长,不断推出契合潮流的创新品类
  • 如何解决Spring Boot中@Valid对List校验失效问题
  • 【Oracle专栏】大批量插入数据 BULK COLLECT
  • 【leetcode100】最长回文子串
  • Altium Designer使用教程 第二章(原理图绘制)
  • 嵌入式 数据结构学习(四) 双向链表详解与工程管理
  • 3dmax标准材质转物理材质插件,支持VR材质和CR材质转换成功物理材质,支持多维子材质
  • vscode工具使用技巧
  • Spring AI介绍:Java开发者迈向智能应用的新利器
  • Delta、Jackknife、Bootstrap
  • n8n完全指南:从入门到精通的工作流自动化实践
  • 闲庭信步使用SV搭建图像测试平台:第三十一课——基于神经网络的手写数字识别
  • RS触发器Multisim电路仿真——硬件工程师笔记
  • 【unitrix】 4.18 类型级二进制数加法实现解析(add.rs)
  • .NET9 实现斐波那契数列(FibonacciSequence)性能测试
  • Windows内存泄漏自动化
  • 部署greenplum7.2双节点集群
  • Softhub软件下载站实战开发(十三):软件管理前端分片上传实现
  • 【部署与总结】从本地运行到公网服务器的全过程