Alpinejs 同时监听多个值

chatgpt给的错误答案

$watch(['count', 'name'], (newValues, oldValues) => {})

上面的代码虽然可以监听到countname的变化,但是newValues永远是count的值,name是无法拿到的

正确的写法是

Alpine.data('box', () => ({
      init() {
          this.$watch('[first,last]', (v,oldV) => {
              console.log(v)
              this.name=`${v[0]} ${v[1]}`
          })
      },
      
  }
))

chatgpt还给了这段代码监听,结果也是错的

<script>
  const app = Alpine.data('myComponent', () => ({
    myData: 'Hello'
  }));

  app.$watch('myData', (newValue, oldValue) => {
    console.log(`myData changed from ${oldValue} to ${newValue}`);
  });
</script>

Alpine.data方法根本就没有返回值,app是undefined,所以app.$watch是无效的,要在init里面写