React hooks の条件分岐呼び出しができない制約が Composition API にはない。 副作用として、ref の値が変更されてもリアクティブな更新は行われないが、 その際は computed, watch 等を使えばよいので、リアクティブ性を開発者がコントロールできる安心感がある。 仕組みは複雑なので解説しません import { useState } from 'react'; export function App(props) { const [message, setMessage] = useState(''); const length = message.length; return ( <div> <h1>Message length is {length}//h1> <input type="text" value={message} onChange={(e) => setMessage(e.target.value)} /> //div> ); <script setup lang='ts'> import { ref, computed } from 'vue'; const message = ref(''); const length = computed(() => message.value.length); //script> <template> <div> <h1>Message length is {{ length }}//h1> <input type="text" v-model="message" /> //div> //template>