由于我不喜欢单个JS中的两个脚本标签。我在没有preload()
的情况下将<script>
功能移到了context=module
中。一切正常。我想知道随之而来的错误。
最佳答案
context=module
脚本标记允许您为组件定义种类的“实例”。我可以看到使用它的三个主要原因:
您可以定义其他组件可以导入的功能或其他代码。通常最好将其放在单独的JS / TS文件中,但是,有时候确实是有道理的。
您可以为该组件的所有实例定义只能定义一次的状态。例如,您可以创建一个计数器组件,用相同的值更新所有其他实例。注意最好使用商店来实现此功能。
您可以定义每个组件只能发生一次的逻辑,并且从技术上讲,可以在创建组件之前使用该逻辑。 (这与点1混合在一起)。
我假设将preload
函数移出模块脚本标记不会允许在生成页面组件之前进行预加载。因此,从本质上讲,将创建组件并调用preload函数,这会在数据返回后导致重新呈现。如果预加载位于模块脚本标记中,则将其提取以便创建第一个渲染。
这是我自己的有根据的推测,不一定是事实。
参见文档here。