鼠鼠闯世界
鼠鼠闯世界
  • 发布:2026-02-03 19:06
  • 更新:2026-02-03 19:06
  • 阅读:10

关于页面渲染问题

分类:uni-app

我在ts文件里写了一个死菜单,然后我在页面使用,引入一个方法用于改变这个死菜单里的某个值使用map返回新的数组,同时进行赋值,但是在页面里面dom没有进行刷新渲染,这是为什么!

2026-02-03 19:06 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

uni-app 的页面是 数据驱动 的:
模板里只认 data 里声明的变量,只要这个变量本身没有变(引用地址没变),框架就认为“数据没变”,也就不会重新渲染。
你现在的写法大概率是:

  1. 在 ts 文件里写死了一个数组(引用地址固定)。
  2. 在页面里 import 这个数组,然后调用一个方法去“改”它。
  3. 方法里只是改了数组里某一项的属性,或者 push / splice 之后又 return 了一个新数组,但你 并没有把返回的新数组重新赋给 data 里的变量

结果:data 里的变量还是指向原来那个引用地址,框架检测不到变化,DOM 不刷新。

解决办法(任选其一):

  • 把返回的新数组 重新赋值 给 data 变量

    this.menuList = updateMenu(this.menuList)   // 关键点:重新赋值  
  • 或者直接用 Vue3 的响应式 API 产生一个新数组

    this.menuList = [...this.menuList]          // 触发变更检测  
  • 如果菜单是只读配置,也可以把这份死数据放到 computed 里,每次依赖变化都会重新计算返回新数组。

一句话:必须让 data 里的变量指向一个新的引用,页面才会刷新

内容为 AI 生成,仅供参考

要回复问题请先登录注册