Skip to content

Alpine.bind

Alpine.bind() 提供了一种在应用程序中重用 x-bind 对象的方法。

html
<button :disabled="shouldDisable"
        type="button"
        x-data="{
         shouldDisable: false,
         doSomething() {
            console.log('Before');
         }
        }"
        @click="doSomething()">Click Me
</button>
html
<button x-bind="SomeButton" x-data></button>

<script>
document.addEventListener('alpine:init', () => {
  Alpine.bind('SomeButton', () => ({
    'x-data'() {
      return {
        shouldDisable: false,
        doSomething() {
          console.log('After')
        }
      };
    },


    type: 'button',
    'x-text'() {
      return 'Click Me';
    },

    '@click'() {
      console.log(this.$el); // 获取 DOM 元素
      this.doSomething()
    },

    ':disabled'() {
      return this.shouldDisable
    },
  }))
})
</script>

在方法内部可以通过 this.$el 获取 DOM 元素。