Alpinejs 全局

Alpinejs实例曝露到外部,控制台访问Alpinejs实例

<div x-data="dropdown">
    <button @click="toggle">...</button>
 
    <div x-show="open">...</div>
</div>
 
<script>
    document.addEventListener('alpine:init', () => {
        Alpine.data('dropdown', () => ({
            init(){
                window.AlpApp = this
            },
            open: false,
 
            toggle() {
                this.open = ! this.open
            }
        }))
    })
</script>

这样页面里就可以打开控制台方便调试了console.log(window.AlpApp.$data.open)

不过拿到的是proxy,也可以这样获取

document.querySelectorAll('[x-data]').forEach(el => {
  console.log(el.__x.getUnobservedData());
});