Vue 3高階響應式資料探勘:原理、用法詳解與實戰範例!
2024.04.10
在Vue 3中,資料的變化透過響應式系統來實現,該系統基於ES6的Proxy物件。 Proxy物件允許攔截並自訂操作,因此Vue可以透過代理物件來實現對資料的監聽和觸發相應的操作。以下是Vue 3中監測資料改變的原理、使用方法和步驟的詳細描述,以及一個實例代碼:
原理:
Vue 3的響應式系統是基於Proxy對象,透過代理對象對資料進行攔截,從而監聽資料的變化。當資料被存取或修改時,Proxy會觸發對應的操作,例如更新視圖。
使用方法:
- reactive 函數: 使用 reactive 函數建立一個響應式物件。
- ref 函數: 使用 ref 函數建立一個包含 value 屬性的響應式對象,適用於基本資料型態。
- toRefs 函數: 將響應式物件轉換為普通物件的響應式參考。
- watch 函數: 監聽資料的變化,可以在資料變化時執行自訂的回呼函數。
步驟:
步驟1:安裝Vue 3
npm install vue@next
- 1.
步驟2:建立Vue實例並使用響應式數據
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue 3高级响应式数据</title>
</head>
<body>
<div id="app">
<p>{{ user.name }}</p>
<p>{{ user.age }}</p>
<button @click="updateUser">更新用户</button>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script src="main.js"></script>
</body>
</html>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
步驟3:編寫Vue實例和響應式資料的JavaScript程式碼
// main.js
import { createApp, reactive, toRefs, watch } from 'vue';
// 创建Vue实例
const app = createApp({
// 使用响应式数据
setup() {
// 创建响应式对象
const user = reactive({
name: 'John',
age: 25
});
// 监听响应式数据的变化
watch(() => {
console.log('用户信息发生变化:', user.name, user.age);
});
// 定义更新用户的方法
const updateUser = () => {
// 修改响应式数据
user.name = 'Jane';
user.age += 1;
};
// 返回响应式对象的引用
return {
user: toRefs(user),
updateUser
};
}
});
// 挂载Vue实例到HTML元素上
app.mount('#app');
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
在上述高階實例中,我們使用了 reactive 函數建立了一個包含 name 和 age 屬性的響應式物件 user。透過 toRefs 函數,我們將響應式物件轉換為普通物件的響應式引用,使得在範本中能夠直接使用 user.name 和 user.age。同時,我們使用了 watch 函數來監聽 user 物件的變化,當資料變化時會輸出資訊到控制台。