如何在Imba元素中运行JavaScript代码?
在Imba元素中嵌入JavaScript代码的实现方式
你当前直接在Imba组件里写<script>标签的方式确实行不通,因为Imba的编译逻辑不会像原生HTML那样自动执行内嵌的脚本代码块。下面给你可行的实现方案,以及为什么不推荐用原生<script>标签的原因:
推荐方案:利用Imba组件的生命周期钩子
Imba组件提供了mounted钩子,这是组件挂载到DOM后触发的时机,刚好对应原生HTML中脚本执行的DOM就绪场景。而且用Imba的ref特性代替getElementById,能更安全地访问组件内的DOM元素:
index.imba
tag script-app <self> <h4> "Running js/ts inside Imba elements" <div ref='print'> # 使用ref标记元素,避免全局id冲突 def mounted # 组件挂载完成后执行DOM操作逻辑 self.refs.print.innerHTML = "Hello" imba.mount <script-app>
这种写法完全符合Imba的组件化开发范式,逻辑封装在组件内部,不会产生全局作用域问题,也更便于调试和维护。
不推荐:模拟原生
相关产品推荐
相关产品推荐

