詳細分析Vue3中的reactive(附Demo)

目錄

  • 1. 基本知識
  • 2. 用法
  • 3. Demo

1. 基本知識

reactive 是一個函數,用于將一個普通的 JavaScript 對象轉換為響應式對象

當對象的屬性發生變化時,Vue 會自動追蹤這些變化,并觸發相應的更新

Vue2沒有,而Vue3中有,為啥使用這個reactive呢?

  • 響應式數據綁定:Vue 3 通過 reactive 實現了更高效的響應式系統
  • 組合式 API:相比于 Vue 2 的選項式 API,組合式 API 提供了更好的邏輯復用和代碼組織方式
  • 更細粒度的 reactivity:通過 reactive,可以實現更細粒度的響應式數據追蹤

基本的用法如下:

import { reactive } from 'vue';const state = reactive({count: 0
});function increment() {state.count++;
}

2. 用法

詳細用法有如下:

  1. 創建響應式對象
import { reactive } from 'vue';const state = reactive({message: 'Hello Vue 3!'
});console.log(state.message); // 輸出: Hello Vue 3!
state.message = 'Hello World!';
console.log(state.message); // 輸出: Hello World!
  1. 嵌套對象
const state = reactive({user: {name: 'Alice',age: 25},items: ['item1', 'item2']
});state.user.age = 26; // 追蹤變化
state.items.push('item3'); // 追蹤變化
  1. 與 computed 結合使用
import { reactive, computed } from 'vue';const state = reactive({count: 1
});const doubleCount = computed(() => state.count * 2);console.log(doubleCount.value); // 輸出: 2
state.count++;
console.log(doubleCount.value); // 輸出: 4
  1. 與 watch 結合使用
import { reactive, watch } from 'vue';const state = reactive({count: 1
});watch(() => state.count, (newValue, oldValue) => {console.log(`count changed from ${oldValue} to ${newValue}`);
});state.count++; // 控制臺輸出: count changed from 1 to 2

3. Demo

總體Demo如下:

# 使用 Vue CLI
vue create my-vue3-app# 使用 Vite
npm init vite@latest my-vue3-app -- --template vue
cd my-vue3-app
npm install

編寫組件:

<template><div><p>Count: {{ state.count }}</p><button @click="increment">Increment</button></div>
</template><script>
import { reactive } from 'vue';export default {setup() {const state = reactive({count: 0});function increment() {state.count++;}return {state,increment};}
};
</script><style scoped>
button {margin-top: 10px;
}
</style>

使用組件:

<template><div id="app"><Counter /></div>
</template><script>
import Counter from './components/Counter.vue';export default {components: {Counter}
};
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

運行項目:npm run dev

在實戰中截圖如下:

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13175.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13175.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13175.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

公司郵箱是什么?公司郵箱和個人郵箱有什么不同?

公司郵箱是企業用來收發郵件的專業版電子郵箱&#xff0c;不同于個人郵箱的簡單功能和有限的存儲空間&#xff0c;公司郵箱的功能更加豐富&#xff0c;能夠滿足企業的日常辦公和協作需求。本文將為您詳細講解公司郵箱和個人郵箱的區別&#xff0c;以供您選擇更適合自己的郵箱類…

嵌入式——C51版本Keil環境搭建

&#x1f3ac; 秋野醬&#xff1a;《個人主頁》 &#x1f525; 個人專欄:《Java專欄》《Python專欄》 ??心若有所向往,何懼道阻且長 文章目錄 目標搭建流程下載與安裝激活STC環境添加校驗是否導入STC環境 目標 ● 了解C51版本Keil開發環境的概念和用途 ● 掌握C51版本Keil環…

2024年NOC大賽創客智慧(西瓜創客)Python復賽編程真題模擬試卷包含答案

NOC復賽python模擬題 1.編寫一個程序&#xff0c;提示用戶輸人一個矩形的長度和寬度&#xff0c;并輸出其面積, 2.試計算在區間 1 到 n的所有整數中,數字x(0≤x≤9)共出現了多少次?例如在 1到11 中&#xff0c;即在 1,2,3.45,6.7,8.9,10,11 中&#xff0c;數字 1出現了 4 次.…

鴻蒙生態融合進行時!菊風啟動適配HarmonyOS NEXT,賦能原生應用實時

??今日話題 鴻蒙HarmonyOS NEXT 自華為公開宣布鴻蒙 HarmonyOS NEXT 系統以來&#xff0c;該系統受到了業內廣泛關注&#xff0c;和以往鴻蒙系統不同的是該系統底座完全由華為自研&#xff0c;摒棄了 Linux 內核和安卓 AOSP 代碼&#xff0c;僅兼容鴻蒙內核及鴻蒙系統的應用…

Leetcode---1.兩數之和 (詳解加哈希表解釋和使用)

文章目錄 題目 [兩數之和](https://leetcode.cn/problems/two-sum/)方法一&#xff1a;暴力枚舉代碼方法二&#xff1a;哈希表代碼 哈希表哈希表的基本概念哈希函數&#xff08;Hash Function&#xff09;&#xff1a;沖突&#xff08;Collision&#xff09;&#xff1a;鏈地址…

windows驅動開發-PCI討論(一)

前面描述中斷的時候&#xff0c;我們曾經多次體積PCI&#xff0c;甚至提供了一些PCI的相關知識&#xff0c;但是整個PCI是一個很大的體系&#xff0c;專門記錄這個體系超出了這個系列的范疇&#xff0c;有興趣的可以到PCI官網了解詳細的情況。 但是還是會花費一些時間討論PCI技…

Pytorch入門實戰 P10-使用pytorch實現車牌識別

目錄 前言 一、MyDataset文件 二、完整代碼&#xff1a; 三、結果展示&#xff1a; 四、添加accuracy值 &#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 | 接輔導、項目定制 本周的學習內容是&#xff0…

SEO:搜索引擎蜘蛛名稱UA(user-agent)

最近網站在做統計功能&#xff0c;想著統計下蜘蛛爬行記錄&#xff0c;看看都有哪些搜索引擎蜘蛛經常關顧&#xff0c;故而好進行相應的對策改變。都知道搜索引擎對一個網站很重要,是很多網站重要的流量來源。熟悉各大搜索引擎的蜘蛛就顯得必要。 做SEO優化的通常會說蜘蛛爬得越…

國網698.45報文解析工具

本文分享一個698.45協議的報文解析工具&#xff0c;此報文解析工具功能強大&#xff0c;可以解析多種國網數據協議。 下載鏈接: https://pan.baidu.com/s/1ngbBG-yL8ucRWLDflqzEnQ 提取碼: y1de 主要界面如下&#xff1a; 本工具內置698.45數據協議&#xff0c; 即可調用word…

win編寫bat腳本啟動java服務

新建txt&#xff0c;編寫&#xff0c;前臺啟動&#xff0c;出現cmd黑窗口 echo off start java -jar zhoao1.jar start java -jar zhoao2.jar pause完成后&#xff0c;重命名.bat 1、后臺啟動&#xff0c;不出現cmd黑窗口&#xff0c;app是窗口名稱 echo off start "名…

美團小程序mtgsig1.2逆向

聲明 本文章中所有內容僅供學習交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包內容、敏感網址、數據接口等均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無關&#xff01;wx a15018601872 本文章未…

VMware虛擬機沒有網,無法設置網絡為橋接狀態

今天需要使用Ubuntu18但現有虛擬機是Ubuntu20&#xff0c;由于硬盤空間不夠大&#xff0c;所以刪除了原來的虛擬機并重新搭建Ubuntu18的環境&#xff0c;然后發現虛擬機沒有網絡&#xff0c;而我之前的虛擬機這一切都是正常的。 在網絡設置里勾選的是橋接模式但無法聯網&#x…

由讀寫arrow引發的對時間時區的思考

arrow是apache開發的一種高壓縮的數據結構&#xff0c;發現用來存儲K線還是很不錯的選擇。 測試用python讀寫很方便&#xff0c;關鍵是足夠小&#xff0c;A股1支票1分鐘的數據&#xff0c;1個月大約是140多K吧。 結果從數據庫取出來存入arrow中&#xff0c;再用C進行讀取&…

Cow Exhibition G的來龍去脈

[USACO03FALL] Cow Exhibition G - 洛谷 曲折經過 爆搜 一開始沒什么好的想法&#xff0c;就針對每頭奶牛去or不去進行了爆搜。 #include <cstdio> #include <algorithm> using namespace std;#define maxn 405 int iq[maxn], eq[maxn]; int ans; int n;void d…

留學資訊 | 2024英國學生簽證申請需要滿足哪些條件?

英國移民局于2020年9月10日發布了《移民規則變更聲明: HC 707》&#xff0c;對學生簽證制度進行了全面改革。該法案于2020年10月5日正式生效。根據此法案&#xff0c;新的學生簽證——The Student and Child Student Routes學生和兒童學生路線&#xff0c;將替代原先的Tier 4學…

短視頻賽道有哪些:成都鼎茂宏升文化傳媒公司

短視頻賽道有哪些&#xff1a;探索多元化的內容領域 隨著科技的飛速發展和人們生活節奏的加快&#xff0c;短視頻已成為現代人生活中不可或缺的一部分。它以其簡短、直觀、易于分享的特點&#xff0c;迅速占領了各個年齡層和社會群體的心智。然而&#xff0c;短視頻的賽道并非…

層次式體系結構概述

1.軟件體系結構 軟件體系結構可定義為&#xff1a;軟件體系結構為軟件系統提供了結構、行為和屬性的高級抽象&#xff0c;由構成系統的元素描述、這些元素的相互作用、指導元素集成的模式以及這些模式的約束組成。軟件體系結構不僅指定了系統的組織結構和拓撲結構&#xff0c;并…

小程序框架是智能融媒體平臺構建的最佳線路

過去5年&#xff0c;媒體行業一直都在進行著信息化建設向融媒體平臺建設的轉變。一些融媒體的建設演變總結如下&#xff1a; 新聞終端的端側內容矩陣建設&#xff0c;如App新聞端&#xff0c;社交平臺上的官方媒體等新聞本地生活雙旗艦客戶端&#xff0c;兼顧主流媒體核心宣傳…

TopOn 正式聚合Kwai 旗下程序化廣告平臺——Kwai Network

**我們非常高興的宣布&#xff0c;TopOn SDK 近日已正式聚合Kwai Network。**作為Kwai 旗下的程序化廣告平臺&#xff0c;Kwai Network 通過優質的變現能力及產品能力&#xff0c;為廣大開發者提供高效及時的服務。 TopOn 聚合平臺與Kwai Network 正式完成接入后&#xff0c;開…

實戰+代碼!Selenium + Phantom JS爬取天天基金數據

功能&#xff1a; 通過程序實現從基金列表頁&#xff0c;獲取指定頁數內所有基金的近一周收益率以及每支基金的詳情頁鏈接。再進入每支基金的詳情頁獲取其余的基金信息&#xff0c;將所有獲取到的基金詳細信息按近6月收益率倒序排列寫入一個Excel表格。 思路&#xff1a; 1.…