user@dailytools:/framework-compare█
React vs Vue 比較
Vue 3重新執行行數: 2
1<script setup>
2import { ref } from 'vue'
3
4const count = ref(0)
5const name = ref('Vue')
6
7function increment() {
8 count.value++
9}
10</script>
11
12<template>
13 <Header />
14 <div>Count: {{ count }}</div>
15 <button @click="increment">+1</button>
16 <Footer :name="name" />
17</template>
React重新執行行數: 14
1import { useState } from 'react'
2
3function App() {
4 const [count, setCount] = useState(0)
5 const [name] = useState('React')
6
7 function increment() {
8 setCount(count + 1)
9 }
10
11 // setState 後整個函式會重新執行
12 return (
13 <>
14 <Header />
15 <div>Count: {count}</div>
16 <button onClick={increment}>+1</button>
17 <Footer name={name} />
18 </>
19 )
20}
原理說明
Vue 3: Vue 3 使用 Proxy 建立細粒度的依賴追蹤。當響應式資料改變時,只有真正讀取過該資料的 template 部分會被重新渲染。script setup 中的程式碼不會重新執行。
React: React 使用 setState/useState 觸發更新。當狀態改變時,React 會重新執行整個元件函式(包含 JSX),需要使用 React.memo 或 useMemo 來避免不必要的重新計算。