首页 > 解决方案 > 如何通过使用像组件这样的自定义指令来观察道具的变化

问题描述

提供任何频道来观看指令中的道具变化

<div v-custom-dir="{ a }"></div>

app.directive("custom-dir", {
  // support `props` 
  props: ["a"],
  // add `props` arguments when mounted or provide setup hook
  mounted(props) {
     // watch props change
     watch(() => props.a, console.log)
  }
})

我知道使用组件可以解决它,但是我需要修改DOM,它会附加一个额外的节点,并在props改变时改变它的行为

现在我依赖于更新钩子,它会在父更新时发出

app.directive("custom-dir", {
   update(el, { value }){
     if(value.a === "b"){
         // do something
       }
  }
})

还有其他方法吗?

标签: javascriptvue.js

解决方案


推荐阅读