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

uniapp中的$vm

$vm当前页面 Vue 实例 的引用,在 uni-app(基于 Vue2)里,通过 getCurrentPages() 取到的页面对象并不是 Vue 实例本身,而是一个 包含 $vm 属性的对象,这个 $vm 才是真正的 Vue 组件实例,因此:

const pages = getCurrentPages();
const prevPage = pages[pages.length - 2]; // 这是 Page 对象
const vm = prevPage.$vm;                  // 这才是 Vue 实例

为什么要用 $vm

写法作用
prevPage.$vm.xxx访问上一级页面 data、methods、computed
prevPage.$vm.someMethod(data)直接调用上一级页面定义的函数

举个完整例子

// 页面 B 返回时携带参数
const pages = getCurrentPages();
const prevPage = pages[pages.length - 2];
prevPage.$vm.receiveBackData?.({ id: 123, name: 'Tom' });
uni.navigateBack();
// 页面 A
export default {data() {return { backData: null };},methods: {receiveBackData(data) {this.backData = data;   // 拿到回传}}
}

注意

  1. 只能在 onLoad/onShow/onReady 之后才能拿到 $vm
  2. 如果你在 nvue 页面,需要用 $vm$mp.page 再包一层,写法略有差异。

一句话总结:
$vm 就是「页面级 Vue 实例」的快捷方式,方便你在页面栈里直接操作上一级页面。

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

相关文章:

  • Winform 渐变色 调色板
  • 【AI论文】单一领域能否助力其他领域?一项基于数据的、通过强化学习实现多领域推理的研究
  • C#程序员计算器
  • Linux性能分析与内存调试:perf和Valgrind高级使用指南
  • 数据结构(7)单链表算法题OVA
  • Tlias 案例-整体布局(前端)
  • docker镜像加速及国内镜像源
  • cocos打包web - ios设备息屏及前后台切换音频播放问题
  • 美国人工智能行动计划:洞察 AI 发展新路径​​
  • 怎样在 Vue 中定义全局方法?
  • 快速删除Word和WPS文字中的空白行
  • LLM—— 基于 MCP 协议(SSE 模式)的工具调用实践
  • PYTHON从入门到实践-17通过网络API获取数据与可视化
  • Deforum Stable Diffusion,轻松实现AI视频生成自由!
  • Python爬虫04_Requests豆瓣电影爬取
  • 《消息队列学习指南:从 MQ 基础到 SpringAMQP 实践》
  • AI一周事件(2025年7月22日-7月29日)
  • wps批量让浮动在表格的图片跟随单元格移动和调整大小
  • 树莓派 香橙派SD卡TF卡U盘系统备份与还原
  • 【Kubernetes 指南】基础入门——Kubernetes 201(二)
  • 【昇腾】基于Atlas 200I DK A2开发者套件修改usb0的默认IP重启后被恢复的问题处理_20250730
  • 第十二天:C++ 标准库函数分类总结
  • LeetCode 56 - 合并区间
  • SpringBoot收尾+myBatis plus
  • 算法精讲:二分查找(二)—— 变形技巧
  • JavaScript中的数据类型以及存储上的差别
  • Keil STM32工程各文件作用
  • ArcGIS以及ArcGIS Pro如何去除在线地图制作者名单
  • 黑马点评-超卖问题
  • 实现了加载 正向 碰撞 雅可比 仿真