Skip to content

AngusFu/vue-sfc-in-html

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NoScript SFC

Load vue3 SFC component with inline <noscript> or <template> tag. Funny :-) :Yeah:

<!DOCTYPE html>
<script defer src="https://unpkg.com/vue-sfc-in-html"></script>
<noscript vue name="MyComponent" mount="#app">
  <script setup>
    import { ref } from "vue";
    const count = ref(0);
  </script>

  <template>
    <button @click="count++">Count is: {{ count }}</button>
  </template>

  <style scoped>
    button {
      font-weight: bold;
      color: red;
    }
  </style>
</noscript>
<body>
  <div id="app"></div>
</body>

You can also use template tag instead of noscript.

<!DOCTYPE html>
<script defer src="https://unpkg.com/vue-sfc-in-html"></script>
<template vue name="MyComponent" mount="#app">
  <script setup>
    import { ref } from "vue";
    const count = ref(0);
  </script>

  <template>
    <button @click="count++">Count is: {{ count }}</button>
  </template>

  <style scoped>
    button {
      font-weight: bold;
      color: red;
    }
  </style>
</template>
<body>
  <div id="app"></div>
</body>

src is also supported.

<!DOCTYPE html>
<script defer src="https://unpkg.com/vue-sfc-in-html"></script>
<body>
  <script type="sfc-importmap">
    {
      "imports": {
        "@tanstack/vue-virtual": "https://esm.sh/@tanstack/vue-virtual"
      }
    }
  </script>

  <template
    vue
    name="MyComponent"
    src="https://raw.githubusercontent.com/AngusFu/vue-sfc-in-html/fork-main/example/vue/test.vue"
    mount="#app"
  ></template>
  <div id="app"></div>
</body>

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 95.6%
  • Vue 2.6%
  • HTML 1.8%