【发布时间】:2020-08-27 23:58:24
【问题描述】:
使用 Bootstrap 4.5/jquery 3.3 / alpinejs 2.2 我想知道是否有办法制作 1 主文件和几个小文件,比如组件? 这种情况下可以共享数据吗?
谢谢!
【问题讨论】:
标签: alpine.js
使用 Bootstrap 4.5/jquery 3.3 / alpinejs 2.2 我想知道是否有办法制作 1 主文件和几个小文件,比如组件? 这种情况下可以共享数据吗?
谢谢!
【问题讨论】:
标签: alpine.js
Alpine.js 组件没有内置的方式在它们之间进行通信。
但是,他们可以使用$dispatch 魔法属性来触发自定义事件,并使用x-on:custom-event-name.window 或.document 为窗口/文档自定义事件注册侦听器。
使用它,您可以编写多个单独的组件并使用自定义事件共享信息(您可以在https://codewithhugo.com/alpinejs-component-communication-event-bus/ 找到更多模式)。
至于拆分成不同的文件,Alpine.js 中没有文件/模板的概念,如果您使用的是静态站点生成器或服务器端模板引擎,则可以创建部分并以这种方式注入标记. Alpine.js 也可以很好地评估注入到 HTML 中的新组件(使用 element.innerHTML 或 Alpine.js x-html 指令)。
要共享 Alpine.js “函数组件”,您可以将它们放入 .js 文件中,并使用常规 <script src="path/to/file.js"></script> 加载它们,只要函数在全局范围内定义,Alpine.js 就会运行它没有问题。
【讨论】: