Vue.js: Difference between revisions

From Fundamental Ramen
Jump to navigation Jump to search
Line 7: Line 7:
* 缺點
* 缺點
** 連動事件時, 當下的值還在未變更狀態
** 連動事件時, 當下的值還在未變更狀態
** 連動事件時, 可能會發生 function loop
** 連動事件時, 如果再次引用 computed 數值會發生 function loop


<source lang="js">
<source lang="js">
computed: {
computed: {
   lifeCycleState () {
   lifeCycleState () {
     setTimeout(function () { this.onChangeState() }, 0.01)
     this.onChangeState()
     return this.value
     return this.value
   }
   }

Revision as of 08:43, 30 June 2021

Child 偵測 Parent 數值變化方法

computed in child

  • 缺點
    • 連動事件時, 當下的值還在未變更狀態
    • 連動事件時, 如果再次引用 computed 數值會發生 function loop
computed: {
  lifeCycleState () {
    this.onChangeState()
    return this.value
  }
}

watcher in child

  • 缺點
    • 如果對象是 property, 需要 immediate: true
    • 如果對象是 property, oldVal 一定是 undefined, 無法取得上一個 tick 的值
    • 如果對象是物件, 需要 deep: true, 但是效能會大幅下降
watcher: {
  foo: {
    handler: (newVal, oldVal) {
      // ...
    },
    immediate: true,
    deep: true
  }
}

this.$refs.xxx in server