0

因为我不喜欢单个 JS 中的两个脚本标签。我preload()<script>没有context=module. 它工作正常。我想知道随之而来的错误。

4

1 回答 1

1

context=module脚本标签允许你为组件定义一个“实例” 。我可以看到您使用它的三个主要原因:

  1. 您可以定义其他组件可以导入的函数或其他代码。这通常最好放在一个单独的 JS/TS 文件中,但是,嘿,有时它确实有意义。
  2. 您可以为该组件的所有实例定义只应定义一次的状态。例如,您可以创建一个计数器组件,用相同的值更新所有其他实例。注意最好使用商店来实现此功能..
  3. 您可以定义每个组件应该只发生一次的逻辑,并且在技术上可以在创建组件之前使用。(这有点与第 1 点混合)。

我假设将preload函数移出模块脚本标记不允许在生成页面组件之前进行预加载。所以本质上,组件被创建并调用了 preload 函数,这会在数据返回后导致重新渲染。如果 preload 在模块脚本标签中,则获取它以创建第一个渲染。

这是我自己有根据的推测,不一定是事实。

请参阅此处的文档。

于 2019-10-31T13:42:59.133 回答