2. vue - undo/redo composable hook (feat. vueuse)

<script setup>
import { ref } from 'vue';
import { useRefhistory } from '@vueuse/core';

const text = ref('');

const {history, undo, redo} = useRefhistory(text);
</script>

<template>
  <button @click="undo">undo</button>
  <button @click="redo">redo</button>
  <textarea v-model="text"></textarea>
  <ul>
    <li v-for="entry in history" :key="entry.timestamp">
      {{ entry }}
    </li>
  </ul>
</template>