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

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.xdnf.cn/news/14857.html

相关文章:

  • FLUX.1-Kontext 高效训练 LoRA:释放大语言模型定制化潜能的完整指南
  • 相机位姿估计
  • 一文讲清楚React中Refs的应用
  • 成为git砖家(12): 看懂git合并分支时冲突提示符
  • Python 机器学习核心入门与实战进阶 Day 3 - 决策树 随机森林模型实战
  • vue 条件渲染(v-if v-else-if v-else v-show)
  • 时域与频域信号特性分析——DFT归一化与双边谱合并分析
  • Kali Linux Wifi 伪造热点
  • SpringBoot:整合quartz实现定时任务-集群化配置
  • 温湿度变送器与电脑进行485通讯连接并显示在触摸屏中(mcgs)
  • Visual Studio 2022 MFC Dialog 添加Toolbar及Tips提示
  • 【算法刷题记录(简单题)002】字符串字符匹配(java代码实现)
  • 补充:问题:CORS ,前后端访问跨域问题
  • Java Go SDK 管理工具与最佳实践
  • 《Java修仙传:从凡胎到码帝》第四章:设计模式破万法
  • PageRank:互联网的马尔可夫链平衡态
  • CSS 文字浮雕效果:巧用 text-shadow 实现 3D 立体文字
  • 【内存】Linux 内核优化实战 - net.ipv4.tcp_tw_reuse
  • springBoot接口层时间参数JSON序列化问题,兼容处理
  • STM32F103RCTx的PWM输出控制电机
  • Matplotlib 安装部署与版本兼容问题解决方案(pyCharm)
  • 共射级放大电路的频率响应Multisim电路仿真——硬件工程师笔记
  • C++11 forward_list 从基础到精通:原理、实践与性能优化
  • 利用 AI 打造的开发者工具集合
  • 高档宠物食品对宠物的健康益处有哪些?
  • Python-GUI-wxPython-布局
  • python打卡day59@浙大疏锦行
  • 应急响应靶场——web3 ——知攻善防实验室
  • docker运行的一些常用命令
  • 使用alist+RaiDrive+webdav将百度夸克网盘变为本地电脑磁盘方法教程