关于vue props watch监听不生效的问题

  • 一开始直接监听 props
  props: {
    id: {
      type: String,
      default: null
    }
  },
  watch: {
    id (val) {
        if (val != null) {
          this.getDetail(val)
        } 
      }
  },
  created() {

  },
  • 发现子组件初始化的时候(页面初次加载),watch里的函数并没有执行,必须在created里面调用一次this.getDetail(this.id),才能初始化执行

  • 如果不想在created里手动调用一次,就必须使用immediate: true

  props: {
    id: {
      type: String,
      default: null
    }
  },
  watch: {
    id: {
      immediate: true,
      handler: function (val) {
        if (val != null) {
          this.getDetail(val)
        }
      }
    }
  },

  created() {

  },

你可能感兴趣的:(vue,前端,vue.js,javascript,前端)