【问题标题】:Petite-vue Init attribute in HTML script tagHTML脚本标签中的Petite-vue Init属性
【发布时间】:2021-09-15 04:37:56
【问题描述】:

我最近在 Twitter 上看到了 Evan You 的 Vue.jssn-p,我不明白 script 标签中的 init 属性是做什么的。我在 MDN 或类似网站上找不到任何关于此的内容。

defer 属性我很清楚。

<script src="https://unpkg.com/petite-vue" defer init></script>

<!-- anywhere on the page -->
<div v-scope="{ count: 0 }">
  {{ count }}
  <button @click="count++">inc</button>
</div>

【问题讨论】:

    标签: javascript html vue.js vuejs3 petite-vue


    【解决方案1】:

    Usage 部分的 repo 自述文件中对此进行了解释:

    init 属性告诉petite-vue 自动查询和初始化页面上所有具有v-scope 的元素。

    根据code snippet,它是一个自定义属性,如果存在脚本标签,它用于挂载应用程序:

    let s
    if ((s = document.currentScript) && s.hasAttribute('init')) {
      createApp().mount()
    }
    

    【讨论】:

      【解决方案2】:

      正如@Boussadjra Brahim 提到的,init 是一个自定义属性,用于在petite-vue 中挂载应用程序。

      除此之外,如果不想自动初始化,去掉init属性,把脚本移到&lt;body&gt;的末尾

      <script src="https://unpkg.com/petite-vue"></script>
      <script>
        PetiteVue.createApp().mount()
      </script>
      

      或者,使用 ES 模块构建:

      <script type="module">
        import { createApp } from 'https://unpkg.com/petite-vue?module'
        createApp().mount()
      </script>
      

      更多信息请参考:Docs

      【讨论】:

        【解决方案3】:

        petite-vue repo 上的 README 文件中的 init 属性指示 petite-vue 在页面加载时立即查找并初始化该页面上所有具有 v-scope 属性的元素。

        但是,您可以通过省略 init 属性来手动初始化 petite-vue,并确保您正在初始化 petite-vue 的脚本标签位于主体标签 &lt;body&gt; 的末尾,然后按照有关初始化的文档进行操作步骤。

        https://github.com/vuejs/petite-vue#manual-init

        【讨论】:

          猜你喜欢
          • 2021-02-03
          • 2014-09-27
          • 2012-12-27
          • 1970-01-01
          • 1970-01-01
          • 2019-07-28
          • 1970-01-01
          • 1970-01-01
          • 2013-06-25
          相关资源
          最近更新 更多