Meituan-Dianping / mpvue

基于 Vue.js 的小程序开发框架,从底层支持 Vue.js 语法和构建工具体系。
http://mpvue.com
MIT License
20.41k stars 2.07k forks source link

使用$set添加新属性可以更新视图 但使用$delete删除属性不能更新视图 #1812

Open stalkercn opened 4 years ago

stalkercn commented 4 years ago

[扼要问题描述]

mpvue 版本号:

[mpvue@2.0.6]

最小化复现代码:

// 示例代码:
<template>
    <h1 @click="test">{{x.y ? x.y : 'undefined'}}</h1>
</template>
export default {
  data () {
    return {
      i: 0,
      x: {}
    }
  },
  methods: {
    test () {
      if (this.x.y) {
        this.$delete(this.x, 'y')
      } else {
        this.$set(this.x, 'y', ++this.i)
      }
    }
  }
}

观察到的表现:

同样的代码在vue页面中可以正常响应,而在mpvue中却只能响应$set方法。

stalkercn commented 4 years ago

项目开始以后我才知道mpvue已经好几年没有人维护了 然而现在骑虎难下没法从头开始 希望大家帮忙想想办法 感谢

Ljy0826 commented 4 years ago

你可以使用计算属性来控制视图渲染

geekchenzx commented 3 years ago

你可以换成uniapp