(2)手摸手-學習 Vue3 之 變量聲明【ref 和 reactive】

手摸手-學習 Vue3 之 變量聲明【ref 和 reactive】

  • 前言
  • ref
  • reactive

前言

vue3 前端代碼開發過程中,必然會涉及變量聲明,會用到:refreactive 。本章節 進行講解說明。

演示的項目,經處理后的結構如下:
在這里插入圖片描述

ref

用途ref 聲明變量時,使用。常用于 聲明 基本類型(此外,也可聲明對象)

具體更多細節,參考官網:
(1)https://cn.vuejs.org/api/reactivity-core.html#ref
(2)https://cn.vuejs.org/glossary/#ref

功能講解,演示如下:

  1. 開發代碼如下:
    在這里插入圖片描述
<template><div>前端開發:{{ name }}</div><button @click="changeName">改變名稱</button>
</template><script lang="ts" setup>
let name = 'Vue3'
function changeName() {console.log('name 變量修改之前:', name)name = '一起學習吧~'console.log('name 變量修改之后:', name)
}
</script><style lang="scss" scoped></style>
  1. 運行后,頁面效果如下:
    說明 瀏覽器控制臺區域,是需手動按F12調出來的,默認不展示。
    在這里插入圖片描述
  2. 期望實現的需求功能
    當點擊 “改變名稱” 這個按鈕時,頁面上內容 Vue3 變成 一起學習吧~

?思考:實際上,當點擊按鈕時,
(1) 代碼層面上的 變量 name 值,能否被修改 ?
(2) 頁面內容 Vue3 能否 變成 一起學習吧~ ?

點擊 “改變名稱” 按鈕,進行驗證:
在這里插入圖片描述
從驗證結果上來看,變量值修改成功,但頁面內容沒有展示。
此時,若想實現頁面內容 “聯動” 效果,可使用 ref 進行變量聲明,將其改為響應式方式。

什么是響應式?

  • 參考官網:https://cn.vuejs.org/glossary/#reactive-effect

在這里插入圖片描述

更改為響應式方式后,
打開瀏覽器,控制臺有輸出內容:變量為一個RefImpl對象,期內有一個value屬性(如下)
在這里插入圖片描述
再次嘗試點擊 “改變名稱” 按鈕,修改 頁面上的內容,
但是,仍然沒有發生變化,如下:
在這里插入圖片描述
在這里插入圖片描述

變量已經改為響應式的了,但頁面還是沒有變化

原因:代碼中,操作變量的方式不對,需調用 .value ,原來的代碼(如下)并未使用.value
在這里插入圖片描述
調整后的代碼如下:
在這里插入圖片描述

代碼調整完成后(使用 .value 修改變量值),
最后,再次進行功能驗證,已可正常同步聯動,效果如下:
在這里插入圖片描述

reactive

用途ref 聲明變量時,使用。只可用于 聲明 對象類型(不可用于基本類型)

具體更多細節,參考官網:https://cn.vuejs.org/api/reactivity-core.html#reactive

功能講解,演示如下:

  1. 創建如下對象,當在頁面上,點擊“改變名稱”按鈕,驗證是否可同步修改變量、以及頁面是否會同步顯示?
    在這里插入圖片描述
<template><div>客戶姓名:{{ client.name }}</div><button @click="changeName">改變名稱</button>
</template><script lang="ts" setup>
let client = { name: '張三', age: 10 }console.log('聲明的變量是:', client)function changeName() {console.log('變量修改之前,屬性值:', client.name)client.name = '諸葛亮'console.log('變量修改之后,屬性值:', client.name)
}
</script><style lang="scss" scoped></style>
  1. 經驗證,變量參數值會同步修改,但是頁面內容不會同步顯示。
    在這里插入圖片描述
  2. 若想實現,變量值發生改變時,頁面同步顯示,可使用 reactive 聲明變量,此時將變為響應式。
    在這里插入圖片描述
  3. 打開瀏覽器頁面,查看控制臺輸出:此時變量對象已經發生改變 為 Proxy
    在這里插入圖片描述
  4. 點擊 “改變名稱” 按鈕,驗證可知:控制臺中顯示變量值發生改變,且頁面內容同步顯示。
    在這里插入圖片描述

說明
(1)使用 ref 聲明的變量,修改參數值時,需使用 .value
(2)此處,使用 reactive 聲明的變量,修改參數值時,無需使用 .value

若有轉載,請注明出處:https://blog.csdn.net/CharlesYuangc/article/details/149105167

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

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

相關文章

[Terence Tao訪談] 無限 | 關注模型 | 矢量場 | 策略性“作弊” | Lean

關注模型 改變視角真的很重要 無限&#xff1a;假設是球形的奶牛 陶哲軒&#xff1a;一個很好的例子是數學中的塞邁雷迪定理&#xff0c;于1970年代得以證明&#xff0c;它涉及在一組數字集合中尋找某種類型的模式&#xff0c;即等差數列&#xff0c;例如3、5、7或10、15、20。…

汽車v型推力桿總成三維5自由度性能及疲勞測試系統

V型推力桿總成裝置&#xff0c;通常設置在載重汽車中、后橋上&#xff0c;成對使用。其一端通過球面銷與車架鉸接&#xff0c;另一端則安裝在車橋上&#xff0c;通過關節軸承與車橋鉸接&#xff0c;其主要作用是穩定車橋&#xff0c;保持車橋的穩定位置&#xff0c;同時克服彈簧…

制動系統故障定義與診斷標準

核心定義&#xff1a; 制動不足 (Brake Insufficiency) 定義&#xff1a;制動系統產生的實際制動力低于預期制動力&#xff0c;但未完全喪失制動能力 關鍵特征&#xff1a; 制動距離增加20%以上 減速度低于預期值30%-50% 制動踏板行程異常增長 等效物理描述&#xff1a;&a…

server-rs

今天早上 看到有人 用cursor寫rust東西了 效果不錯遂嘗試寫一下web serverserver本身這個詞就不確指單單這一個東西在與cursor交流中,還是越來越明白了之前 沒有管過的一些"常識"一個業務服務之所以能“一直處理請求”&#xff0c;是因為有一個“東西”在背后做著持續…

python打卡day59@浙大疏錦行

知識點回顧&#xff1a; SARIMA模型的參數和用法&#xff1a;SARIMA(p, d, q)(P, D, Q)m模型結果的檢驗可視化&#xff08;昨天說的是摘要表怎么看&#xff0c;今天是對這個內容可視化&#xff09;多變量數據的理解&#xff1a;內生變量和外部變量多變量模型 統計模型&#xff…

Redisson的分布式鎖源碼分析2

文章目錄Redisson的讀寫鎖使用加鎖源碼分析釋放鎖源碼分析&#xff1a;Redisson一次加多個鎖RedissonMultiLock加鎖源碼分析&#xff1a;RedissonMultiLock釋放鎖源碼分析&#xff1a;RCountDownLatch介紹&#xff1a;RCountDownLatch源碼分析&#xff1a;RSemaphore分布式信號…

系統架構設計師論文分享-論軟件過程模型及應用

我的軟考歷程 摘要 2023年2月&#xff0c;我所在的公司通過了研發紗線MES系統的立項&#xff0c;該系統為國內紗線工廠提供SAAS服務&#xff0c;旨在提升紗線工廠的數字化和智能化水平。我在該項目中擔任架構設計師&#xff0c;負責該項目的架構設計工作。本文結合我在該項目…

云原生Kubernetes系列 | etcd3.5集群部署和使用

云原生Kubernetes系列 | etcd3.5集群部署和使用 1. etcd集群部署2. etcd集群操作3. 新增etcd集群節點1. etcd集群部署 etcd3.5官網站點: ?? https://etcd.io/docs/v3.5/op-guide/clustering/ ?? https://etcd.io/docs/v3.5/tutorials/how-to-setup-cluster/ [root@localh…

helm安裝配置jenkins

1、k8s1.28.2、helm3.12.0&#xff0c;集群搭建 查看節點運行情況 kubectl get node -o wide openebs部署情況 kubectl get sc -n openebs 2、添加Jenkins Helm倉庫 helm repo add jenkins https://charts.jenkins.iohelm repo update# 查看版本 helm search repo -l jen…

Wagtail - Django 內容管理系統

文章目錄 一、關于 Wagtail1、項目概覽2、相關鏈接資源3、功能特性 二、安裝配置三、使用入門1、快速開始2、兼容性 四、其它社區與支持1、社區資源2、商業支持 開發貢獻參考項目參考文獻 一、關于 Wagtail 1、項目概覽 Wagtail 是一個基于 Django 構建的開源內容管理系統&am…

Spring AI Alibaba 來啦!!!

博客標題&#xff1a;Spring AI Alibaba&#xff1a;深度解析其優勢與阿里云生態的無縫集成 引言 隨著人工智能技術的快速發展&#xff0c;越來越多的企業和開發者開始關注如何將 AI 技術融入到現有的應用開發框架中。Spring AI 作為 Spring 框架在 AI 領域的擴展&#xff0c;…

【論文閱讀39】PINN求邊坡內時空變化的地震動響應(位移、速度、加速度)場分布

論文提出了一種基于物理信息神經網絡&#xff08;PINN&#xff09;和極限分析上界定理相結合的巖體邊坡地震穩定性分析框架&#xff0c;重點考慮了邊坡中的預存裂縫對穩定性的影響。 PINN用來求解巖質邊坡內隨時間和空間變化的地震動響應&#xff08;位移、速度、加速度&#…

驅動開發系列59- 再述如何處理硬件中斷

在本文中,我們將重點討論編寫設備驅動程序時一個非常關鍵的方面:什么是硬件中斷,更重要的是,作為驅動開發者,你該如何準確地處理它們。事實上,大量的外設(也就是你可能會為其編寫驅動的設備)在需要操作系統或驅動程序立即響應時,通常會通過觸發硬件中斷的方式發出請求…

【藍牙】Linux Qt4查看已經配對的藍牙信息

在Linux系統中使用Qt4查看已配對的藍牙設備信息&#xff0c;可以基于DBus與BlueZ&#xff08;Linux下的藍牙協議棧&#xff09;進行交互。以下是一個實現方案&#xff1a; 1. 引入必要的庫和頭文件 確保項目中包含DBus相關的頭文件&#xff0c;并鏈接QtDBus模塊&#xff1a; …

企業客戶數據防竊指南:從法律要件到維權實操

作者&#xff1a;邱戈龍、曾建萍 ——上海商業秘密律師 在數字經濟時代&#xff0c;客戶數據已成為企業最核心的資產之一。然而&#xff0c;數據顯示&#xff0c;近三年全國商業秘密侵權案件中&#xff0c;涉及客戶信息的案件占比高達42%&#xff0c;但最終進入刑事程序的不足…

WHAT - React Native 中 Light and Dark mode 深色模式(黑暗模式)機制

文章目錄 一、Light / Dark Mode 的原理1. 操作系統層2. React Native 如何獲取?3. 樣式怎么跟著變?二、關鍵代碼示例講解代碼講解:三、自定義主題四、運行時自動更新五、核心原理一張圖組件應用例子最小示例:動態樣式按鈕的動態樣式如何封裝一套自定義主題四、如何和 Them…

[25-cv-07396、25-cv-07470]Keith代理Anderson這9張版權圖,除此之外原告還有50多個版權!賣家要小心!

Anderson 版權圖 案件號&#xff1a;25-cv-07396、25-cv-07470 立案時間&#xff1a;2025年7月2日 原告&#xff1a;Anderson Design Group, Inc. 代理律所&#xff1a;Keith 原告介紹 原告是美國的創意設計公司&#xff0c;成立于1993年&#xff0c;簡稱ADG&#xff0c;一…

五、代碼生成器:gen項目開發

目錄 1.新建數據庫 2.nacos中配置文件 3.gen項目配置代碼 4.前端項目 我們再項目中需要代碼生成器,這邊自己開發一個gen代碼生成器服務。 1.新建數據庫 CREATE TABLE `gen_table` (`table_id` bigint NOT NULL AUTO_INCREMENT COMMENT 編號,`table_name` varchar(200) DEF…

UI前端大數據處理安全性保障:數據加密與隱私保護策略

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩! 一、引言&#xff1a;大數據時代前端安全的核心挑戰 在數據驅動業務發展的今天&#xff0c;U…

基于 alpine 構建 .net 的基礎鏡像

準備基礎鏡像 alpine:3.22 完整的 Dockerfile 如下&#xff1a; # 使用官方的 Alpine 3.22 鏡像作為基礎鏡像 FROM --platform$TARGETPLATFORM alpine:3.22 AS builder# 設置環境變量 ENV DEBIAN_FRONTENDnoninteractive# 創建目錄結構 WORKDIR /app# 備份原始源文件并更換為…