Skip to content

Latest commit

 

History

History
141 lines (107 loc) · 3.13 KB

README.zh-CN.md

File metadata and controls

141 lines (107 loc) · 3.13 KB

English | 简体中文

😏 setupin 是什么?

setupin 允许你在 HTML 中使用 Vue SFC 语法。

利用sfc2esm,在运行时编译为esm格式的vue代码,并动态执行。

🤯 代码对比

esm.html

vue esm 写法复杂

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>esm</title>
  <style>
    button {
      font-size: larger;
    }
  </style>
</head>
<body>
  <div id="app">
    <button @click="count++">{{ count }}</button>
  </div>

  <script type="module">
    import { createApp, defineComponent, ref } from 'https://unpkg.com/vue/dist/vue.esm-browser.js';
    const App = defineComponent(() => {
      const count = ref(0);
      return {
        count
      };
    });
    createApp(App).mount('#app')
  </script>
</body>
</html>

setup.vue

vue sfc 需要编译

<script setup>
  import { ref } from 'vue'
  const count = ref(0)
</script>

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

<style>
  button {
    font-size: larger;
  }
</style>

setupin.html

setupin 将其合二为一

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>setupin</title>
  <script src="https://unpkg.com/setupin"></script>
</head>

<script setup>
  import { ref } from 'vue'
  const count = ref(0)
</script>

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

<style>
  button {
    font-size: larger;
  }
</style>

除了<head>之外和Vue SFC写法完全一致

🤓 特性

🤔 为什么选择 setupin

  1. 便于学习 为初学者提供一个友好的环境,帮助他们轻松上手 Vue 的核心用法。

  2. 简易开发 提供便捷的方式,助力快速开发小网页,无需繁琐的配置。

  3. 快速体验 让用户可以快速在 HTML 中尝试 Vue 的新特性,感受其魅力。

😝 演练场

stackblitz 上尝试一下吧!

🥰 CDN

<!-- 默认是dev版本 -->
<script src="https://unpkg.com/setupin"></script>

<!-- dev -->
<script src="https://unpkg.com/setupin/dist/main.js"></script>

<!-- prod -->
<script src="https://unpkg.com/setupin/dist/main.prod.js"></script>