国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Vue3】使用ref與reactive創(chuàng)建響應式對象

這篇具有很好參考價值的文章主要介紹了【Vue3】使用ref與reactive創(chuàng)建響應式對象。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??????歡迎來到我的博客,你將找到有關如何使用技術解決問題的文章,也會找到某個技術的學習路線。無論你是何種職業(yè),我都希望我的博客對你有所幫助。最后不要忘記訂閱我的博客以獲取最新文章,也歡迎在文章下方留下你的評論和反饋。我期待著與你分享知識、互相學習和建立一個積極的社區(qū)。謝謝你的光臨,讓我們一起踏上這個知識之旅!
【Vue3】使用ref與reactive創(chuàng)建響應式對象,Vue3,javascript,前端,vue.js,vue,vscode

??介紹ref

先來簡單介紹一下ref,它可以定義響應式的變量

  • 語法:let xxx = ref(初始值)。
  • **返回值:**一個RefImpl的實例對象,簡稱ref對象ref,ref對象的value屬性是響應式的
  • 注意點:
    • JS中操作數(shù)據(jù)需要:xxx.value,但模板中不需要.value,直接使用即可。
    • 對于let name = ref('張三')來說,name不是響應式的,name.value是響應式的。

下面我們看一看
【Vue3】使用ref與reactive創(chuàng)建響應式對象,Vue3,javascript,前端,vue.js,vue,vscode
上圖紅框中代表的意思是,我們哪里需要響應就在哪個里面導入上述代碼即可
【Vue3】使用ref與reactive創(chuàng)建響應式對象,Vue3,javascript,前端,vue.js,vue,vscode
同時我們要在js中為變量添加value,否則不會更新,如下圖所示

【Vue3】使用ref與reactive創(chuàng)建響應式對象,Vue3,javascript,前端,vue.js,vue,vscode

<template>
   <div class="person">
     <h2>姓名:{{name}}</h2>
     <h2>年齡:{{age}}</h2>
     <h2>地址:{{address}}</h2>
     <button @click="changeName">修改名字</button>
     <button @click="changeAge">修改年齡</button>
     <button @click="showTel">查看聯(lián)系方式</button>
   </div>
 </template>
 
 <script lang="ts" setup name="Person11">
   import {ref} from 'vue'
   let name = ref('饅頭')
   let age = ref(18)
   let tel = '11514611254'
   let address = '北京市'
 

   function changeName() {
     name.value = 'zhang-san' 
     console.log(name) 
   }
   function changeAge() {
     age.value += 1 
     console.log(age) 
   }
   function showTel() {
     alert(tel)
   }
 </script>
 
 <style scoped>
   .person {
     background-color: skyblue;
     box-shadow: 0 0 10px;
     border-radius: 10px;
     padding: 20px;
   }
   button {
     margin: 0 5px;
   }
 </style>

??介紹reactive

相對比ref,reactive針對自定義的對象數(shù)組等

  • 語法:let 響應式對象= reactive(源對象)。
  • **返回值:**一個Proxy的實例對象,簡稱:響應式對象。
  • 注意點:reactive定義的響應式數(shù)據(jù)是“深層次”的。

實際例子如下

<template>
   <div class="person">
     <h2>{{Handmade.name}}手辦,價值{{ Handmade.price }}元</h2>
     <button @click="changePrice">修改價格</button>
   </div>
 </template>
 
 <script lang="ts" setup name="Person11">
   import {reactive} from 'vue'
   let Handmade = reactive({name:'小舞',price:888})

   function changePrice() {
     Handmade.price += 50
   }
  
 </script>

如果是數(shù)組呢

<template>
   <div class="person">
     <h2>{{Handmade.name}}手辦,價值{{ Handmade.price }}元</h2>
     <button @click="changePrice">修改價格</button>
     <br>
     <h2>運動:</h2>
      <ul>
        <li v-for="i in sports" :key="i.id">{{i.name}}</li>
      </ul>
      <button @click="changeFirstGame">修改第一個運動的名字</button>
   </div>
 </template>
 
 <script lang="ts" setup name="Person11">
  import {reactive} from 'vue'
  let Handmade = reactive({name:'小舞',price:888})
  let sports = reactive([
    {id:'a',name:'足球'},
    {id:'b',name:'籃球'},
    {id:'c',name:'乒乓球'}
  ])
   function changePrice() {
     Handmade.price += 50
   }
   function changeFirstGame(){
    sports[0].name = '羽毛球'
  }
  
 </script>

運行結果如下
【Vue3】使用ref與reactive創(chuàng)建響應式對象,Vue3,javascript,前端,vue.js,vue,vscode

==注意:==深層次的數(shù)據(jù)也行可以的

let obj = reactive({
    a:{
      b:{
        c:666
      }
    }
  })

下面再進行擴展一下知識點
【Vue3】使用ref與reactive創(chuàng)建響應式對象,Vue3,javascript,前端,vue.js,vue,vscode

??ref擴展

前面說ref可以定義基本類型,但是這里我再說明一下,其實ref也可以創(chuàng)建對象類型,但是reactive確實不可以定義基本類型

 <script lang="ts" setup name="Person11">
  import {ref} from 'vue'
  let Handmade = ref({name:'小舞',price:888})
  let sports = ref([
    {id:'a',name:'足球'},
    {id:'b',name:'籃球'},
    {id:'c',name:'乒乓球'}
  ])
   function changePrice() {
     Handmade.value.price += 50
   }
   function changeFirstGame(){
    sports.value[0].name = '羽毛球'
  }
  
 </script>

其實只需要注意一點,別忘了ref在js中的書寫要求要加.value
ref接收的是對象類型,內(nèi)部其實也是調(diào)用了reactive函數(shù)。

??ref和reactive對比

宏觀角度看:

  1. ref用來定義:基本類型數(shù)據(jù)、對象類型數(shù)據(jù);

  2. reactive用來定義:對象類型數(shù)據(jù)。

  • 區(qū)別:
  1. ref創(chuàng)建的變量必須使用.value(可以使用volar插件自動添加.value)。
    在設置–》擴展–》Volar
    【Vue3】使用ref與reactive創(chuàng)建響應式對象,Vue3,javascript,前端,vue.js,vue,vscode
  1. reactive重新分配一個新對象,會失去響應式(可以使用Object.assign去整體替換)。
    其實就是不能重復寫同一個對象
  • 使用原則:
  1. 若需要一個基本類型的響應式數(shù)據(jù),必須使用ref。
  2. 若需要一個響應式對象,層級不深,refreactive都可以。
  3. 若需要一個響應式對象,且層級較深,推薦使用reactive

??總結

本文根據(jù)禹神課程進行總結,本節(jié)主要介紹ref和reactive

【Vue3】使用ref與reactive創(chuàng)建響應式對象,Vue3,javascript,前端,vue.js,vue,vscode

挑戰(zhàn)與創(chuàng)造都是很痛苦的,但是很充實。文章來源地址http://www.zghlxwxcb.cn/news/detail-833539.html

到了這里,關于【Vue3】使用ref與reactive創(chuàng)建響應式對象的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Vue3通透教程【五】Vue3中的響應式數(shù)據(jù) reactive函數(shù)、ref函數(shù)

    專欄介紹: 涼哥作為 Vue 的忠實粉絲輸出過大量的 Vue 文章,應粉絲要求開始更新 Vue3 的相關技術文章,Vue 框架目前的地位大家應該都曉得,所謂三大框架使用人數(shù)最多,公司選型最多的框架,涼哥之前在文章中也提到過就是 Vue 框架之所以火起來的原因,和 Vue 框架相比其他

    2024年01月24日
    瀏覽(27)
  • 關于 Vue3 響應式 API 以及 reactive 和 ref 的用法

    關于 Vue3 響應式 API 以及 reactive 和 ref 的用法

    這篇文章記錄一下 Vue3 響應式的內(nèi)容,其中還包括了 reactive 和 ref 的用法。響應式是一種允許以聲明式的方式去適應變化的編程范例,接下來我們一起看看。 Vue 框架的特點之一就是響應式。 Vue 2.x 是基于 Object.defineProperty() 方法實現(xiàn)響應式。但是 Object.defineProperty() 方法有一定

    2024年02月12日
    瀏覽(31)
  • 【Vue學習筆記5】Vue3中的響應式:ref和reactive、watchEffect和watch

    【Vue學習筆記5】Vue3中的響應式:ref和reactive、watchEffect和watch

    所謂響應式就是界面和數(shù)據(jù)同步,能實現(xiàn)實時更新。 Vue 中用過三種響應式解決方案,分別是 defineProperty、Proxy 和 value setter。Vue 2 使用的方案是 defineProperty API。Vue3中使用的方案是Proxy和value setter。 vue3中實現(xiàn)響應式數(shù)據(jù)的方法是使用ref和reactive。 reactive更推薦去定義復雜的數(shù)

    2024年02月03日
    瀏覽(32)
  • vue3使用ref和reactive

    vue3使用ref和reactive

    目錄 ??????? vue3使用ref和reactive的方法 1.ref 2.reactive Vue 3 使用 ref 和 reactive 創(chuàng)建響應式對象的完整示例: 1.示例 2.示例說明 vue3使用ref和reactive的方法 Vue 3引入了兩個新的API, ref 和 reactive ,用于創(chuàng)建響應式對象。這兩個方法都位于 Vue.prototype 上,因此可以在組件實例

    2024年02月08日
    瀏覽(29)
  • 【Vue3源碼】第五章 實現(xiàn) reactive 和 readonly 嵌套對象綁定響應式

    【Vue3源碼】第五章 實現(xiàn) reactive 和 readonly 嵌套對象綁定響應式

    【Vue3源碼】第五章 實現(xiàn) reactive 和 readonly 嵌套對象綁定響應式 上一章節(jié)我們實現(xiàn)了 isReadonly 和 isReactive 兩個API。 還記得第一章時說的proxy無法代理嵌套對象形成響應式的問題嗎?這一章我們實現(xiàn) reactive 和 readonly 嵌套對象轉換功能,以及shallowReadonly 和isProxy幾個簡單的API。

    2024年01月18日
    瀏覽(20)
  • Vue3 中應該使用 Ref 還是 Reactive?

    你可能會好奇:為什么我們需要使用帶有? .value ?的 ref,而不是普通的變量?為了解釋這一點,我們需要簡單地討論一下 Vue 的響應式系統(tǒng)是如何工作的。 當你在模板中使用了一個 ref,然后改變了這個 ref 的值時,Vue 會自動檢測到這個變化,并且相應地更新 DOM。這是通過一

    2024年02月20日
    瀏覽(26)
  • Vue3 - 如何將 reactive() 創(chuàng)建的響應式數(shù)據(jù) “輕松“ 恢復成初始數(shù)據(jù)值,重置 reactive() 定義的數(shù)據(jù)使其恢復成初始定義的數(shù)據(jù)結構(使用一個函數(shù)輕松解決,并且不丟失響應式)

    Vue3 - 如何將 reactive() 創(chuàng)建的響應式數(shù)據(jù) “輕松“ 恢復成初始數(shù)據(jù)值,重置 reactive() 定義的數(shù)據(jù)使其恢復成初始定義的數(shù)據(jù)結構(使用一個函數(shù)輕松解決,并且不丟失響應式)

    典型的場景就是我有一個表單,用戶輸入了一些內(nèi)容后,點擊提交后程序需要 “重置表單” 把上次填過的內(nèi)容重置掉。 本文實現(xiàn)了 一個函數(shù)重置 reactive 創(chuàng)建的數(shù)據(jù),恢復 “最開始時的數(shù)據(jù)結構和默認值,” 你可以直接復制本文提供的函數(shù),有三種方案可選。 直接調(diào)用函

    2024年02月11日
    瀏覽(23)
  • 【vue3】優(yōu)雅的解決reactive()響應式對象初始化重新賦值問題v2

    關聯(lián)的上篇文章: 【vue3】優(yōu)雅的解決reactive()響應式對象初始化重新賦值問題_vue3 reactive重新賦值_oumae-kumiko的博客-CSDN博客 在上面該文章提到了reactive該api的不方便之處和相關重置數(shù)據(jù)方法的解析。下面提供的方法就是自己封裝的`$reactive`方法,通過該方法返回響應式數(shù)據(jù)和重

    2024年02月15日
    瀏覽(23)
  • vue3的ref,reactive的使用和原理解析

    vue3的ref,reactive的使用和原理解析

    目錄 1.前言 2.比較 3.ref源碼解析 4.reactive源碼解析 createReactiveObject handles的組成 get陷阱 set陷阱 5.總結 vue3新增了ref,reactive兩個api用于響應式數(shù)據(jù),Ref 系列毫無疑問是使用頻率最高的 api 之一,響應式意味著數(shù)據(jù)變動,頁面局部自動更新。數(shù)據(jù)類型有基本數(shù)據(jù)類型(string,number

    2024年02月01日
    瀏覽(18)
  • Vue3為什么推薦使用ref而不是reactive

    Vue3為什么推薦使用ref而不是reactive

    reactive 本身具有很大局限性導致使用過程需要額外注意,如果忽視這些問題將對開發(fā)造成不小的麻煩;ref更像是vue2時代 option api 的 data 的替代,可以存放任何數(shù)據(jù)類型,而 reactive 聲明的數(shù)據(jù)類型只能是對象; 先拋出結論,再詳細說原因:非必要不用 reactive ! (官方文檔也有對應的推薦

    2024年02月07日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包