A custum Vue3 renderer to provided the same component-based UI building experience that Vue3 offers in the browser, but for command-line apps. It uses Yoga to build Flexbox layouts in the terminal, so most CSS-like props are available in vue-custom-renderer as well. The project is based on ink.
Counter.vue:
<script setup>
const { ref, onMounted } = require("vue")
const count = ref(0)
onMounted(() => {
setTimeout(() => count.value = 1, 1_000);
});
</script>
<template>
<Text>{{ count }} tests passed.</Text>
</template>
index.js:
const { createApp } = require("./vuerender");
const Counter = require("./Counter.vue");
createApp(Counter).mount(process.stdout);