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

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

相关文章:

  • 数字化转型-制造业未来蓝图:“超自动化”工厂
  • 开源项目:排序算法的多种实现方式
  • ComfyUI自定义图片导出路径
  • 【图像处理】直方图均衡化c++实现
  • OpenEuler 安装 apache + php8 不解析php文件的处理
  • 网络编程-(网络计算机和网络通信)
  • Web3:赛道划分与发展趋势解析
  • PYTHON从入门到实践-17通过网络API获取数据与可视化
  • STM32启动流程详解:从复位到main函数的完整路径
  • 鲸签云合同管理系统有什么功能?
  • 李宏毅2025《机器学习》-第九讲:大型语言模型评测的困境与“古德哈特定律”**
  • Newman+Jenkins实施接口自动化测试
  • 【学习过程记录】【czsc】1、安装
  • Tomcat 服务器日志
  • 解决Nginx的HTTPS跨域内容显示问题
  • REST、GraphQL、gRPC、tRPC深度对比
  • Buck的Loadline和DVS区别和联系
  • WebSocket 简介与在 Vue 中的使用指南
  • Ganttable 时间仪表盘
  • 笔记本电脑开机慢系统启动慢怎么办?【图文详解】win7/10/11开机慢
  • PAT 甲级题目讲解:1011《World Cup Betting》
  • 如何修改VM虚拟机中的ip
  • MaxKB+MinerU:通过API实现PDF文档解析并存储至知识库
  • 【WPS】邮件合并教程\Excel批量写入数据进Word模板
  • 阿里云AI代码助手通义灵码开发指导
  • Mysql-索引
  • sql developer 中文显示问号 中文显示乱码 错误消息显示问号
  • 操作系统:总结(part_1,part_2)
  • Linux的应用层协议——http和https
  • 微服务的编程测评系统8-题库管理-竞赛管理