最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3使用ref與reactive創(chuàng)建響應(yīng)式對(duì)象的示例代碼

 更新時(shí)間:2024年02月22日 09:43:54   作者:小饅頭學(xué)python  
這篇文章主要詳細(xì)介紹了Vue3使用ref與reactive創(chuàng)建響應(yīng)式對(duì)象的方法步驟,文中通過(guò)代碼示例和圖文結(jié)合的方式給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下

介紹ref

先來(lái)簡(jiǎn)單介紹一下ref,它可以定義響應(yīng)式的變量

  • 語(yǔ)法:let xxx = ref(初始值)。
  • **返回值:**一個(gè)RefImpl的實(shí)例對(duì)象,簡(jiǎn)稱ref對(duì)象ref,ref對(duì)象的value屬性是響應(yīng)式的。
  • 注意點(diǎn):
    • JS中操作數(shù)據(jù)需要:xxx.value,但模板中不需要.value,直接使用即可。
    • 對(duì)于let name = ref('張三')來(lái)說(shuō),name不是響應(yīng)式的,name.value是響應(yīng)式的。

下面我們看一看

在這里插入圖片描述

上圖紅框中代表的意思是,我們哪里需要響應(yīng)就在哪個(gè)里面導(dǎo)入上述代碼即可

在這里插入圖片描述

同時(shí)我們要在js中為變量添加value,否則不會(huì)更新,如下圖所示

請(qǐng)?zhí)砑訄D片描述

<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

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

  • 語(yǔ)法:let 響應(yīng)式對(duì)象= reactive(源對(duì)象)。
  • **返回值:**一個(gè)Proxy的實(shí)例對(duì)象,簡(jiǎn)稱:響應(yīng)式對(duì)象。
  • 注意點(diǎn):reactive定義的響應(yīng)式數(shù)據(jù)是“深層次”的。

實(shí)際例子如下

<template>
   <div class="person">
     <h2>{{Handmade.name}}手辦,價(jià)值{{ Handmade.price }}元</h2>
     <button @click="changePrice">修改價(jià)格</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}}手辦,價(jià)值{{ Handmade.price }}元</h2>
     <button @click="changePrice">修改價(jià)格</button>
     <br>
     <h2>運(yùn)動(dòng):</h2>
      <ul>
        <li v-for="i in sports" :key="i.id">{{i.name}}</li>
      </ul>
      <button @click="changeFirstGame">修改第一個(gè)運(yùn)動(dòng)的名字</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>

運(yùn)行結(jié)果如下

請(qǐng)?zhí)砑訄D片描述

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

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

下面再進(jìn)行擴(kuò)展一下知識(shí)點(diǎn)

在這里插入圖片描述

ref擴(kuò)展

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

 <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>

其實(shí)只需要注意一點(diǎn),別忘了ref在js中的書寫要求要加.value

ref接收的是對(duì)象類型,內(nèi)部其實(shí)也是調(diào)用了reactive函數(shù)。

ref和reactive對(duì)比

宏觀角度看:

ref用來(lái)定義:基本類型數(shù)據(jù)、對(duì)象類型數(shù)據(jù)

reactive用來(lái)定義:對(duì)象類型數(shù)據(jù)。

區(qū)別:

ref創(chuàng)建的變量必須使用.value(可以使用volar插件自動(dòng)添加.value)。
在設(shè)置–》擴(kuò)展–》Volar

在這里插入圖片描述

reactive重新分配一個(gè)新對(duì)象,會(huì)失去響應(yīng)式(可以使用Object.assign去整體替換)。
其實(shí)就是不能重復(fù)寫同一個(gè)對(duì)象

使用原則:

  • 若需要一個(gè)基本類型的響應(yīng)式數(shù)據(jù),必須使用ref。
  • 若需要一個(gè)響應(yīng)式對(duì)象,層級(jí)不深,ref、reactive都可以。
  • 若需要一個(gè)響應(yīng)式對(duì)象,且層級(jí)較深,推薦使用reactive。

總結(jié)

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

以上就是Vue3使用ref與reactive創(chuàng)建響應(yīng)式對(duì)象的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Vue3 ref reactive響應(yīng)式對(duì)象的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue自定義全局Toast和Loading的實(shí)例詳解

    Vue自定義全局Toast和Loading的實(shí)例詳解

    這篇文章主要介紹了Vue自定義全局Toast和Loading,需要的朋友可以參考下
    2019-04-04
  • VUE項(xiàng)目中調(diào)用高德地圖的全流程講解

    VUE項(xiàng)目中調(diào)用高德地圖的全流程講解

    這篇文章主要介紹了VUE項(xiàng)目中調(diào)用高德地圖的全流程講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue實(shí)現(xiàn)驗(yàn)證碼按鈕倒計(jì)時(shí)功能

    vue實(shí)現(xiàn)驗(yàn)證碼按鈕倒計(jì)時(shí)功能

    最近項(xiàng)目結(jié)束,空閑時(shí)間比較多,今天小編抽時(shí)間給大家使用vue寫一個(gè)小例子,就決定做驗(yàn)證碼倒計(jì)時(shí)功能,具體實(shí)例代碼大家參考下本文
    2018-04-04
  • vue中后端做Excel導(dǎo)出功能返回?cái)?shù)據(jù)流前端的處理操作

    vue中后端做Excel導(dǎo)出功能返回?cái)?shù)據(jù)流前端的處理操作

    這篇文章主要介紹了vue中后端做Excel導(dǎo)出功能返回?cái)?shù)據(jù)流前端的處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • vue父組件點(diǎn)擊觸發(fā)子組件事件的實(shí)例講解

    vue父組件點(diǎn)擊觸發(fā)子組件事件的實(shí)例講解

    下面小編就為大家分享一篇vue父組件點(diǎn)擊觸發(fā)子組件事件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 基于vue中的scoped坑點(diǎn)解說(shuō)

    基于vue中的scoped坑點(diǎn)解說(shuō)

    這篇文章主要介紹了基于vue中的scoped坑點(diǎn)解說(shuō),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • vue實(shí)現(xiàn)模態(tài)框的通用寫法推薦

    vue實(shí)現(xiàn)模態(tài)框的通用寫法推薦

    下面小編就為大家分享一篇vue實(shí)現(xiàn)模態(tài)框的通用寫法推薦,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 詳解vuex的簡(jiǎn)單todolist例子

    詳解vuex的簡(jiǎn)單todolist例子

    這篇文章主要介紹了詳解vuex的簡(jiǎn)單todolist例子,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Vue中tinymce富文本功能配置詳解

    Vue中tinymce富文本功能配置詳解

    TinyMCE是一款易用、且功能強(qiáng)大的所見即所得的富文本編輯器,跟其他富文本編輯器相比,有著豐富的插件,支持多種語(yǔ)言,能夠滿足日常的業(yè)務(wù)需求并且免費(fèi),本文小編給大家詳細(xì)介紹了Vue中tinymce富文本功能配置,需要的朋友可以參考下
    2023-11-11
  • Vue3 給 reactive 響應(yīng)式對(duì)象賦值的實(shí)現(xiàn)

    Vue3 給 reactive 響應(yīng)式對(duì)象賦值的實(shí)現(xiàn)

    在Vue3中,可以使用reactive函數(shù)創(chuàng)建響應(yīng)式對(duì)象,如果你想給這個(gè)響應(yīng)式對(duì)象賦值,可以直接修改其屬性,下面就來(lái)介紹一下reactive響應(yīng)式對(duì)象賦值的實(shí)現(xiàn),感興趣的可以了解一下
    2025-09-09

最新評(píng)論

左云县| 静乐县| 东光县| 哈尔滨市| 化隆| 凌云县| 广西| 鄂伦春自治旗| 巴彦淖尔市| 三门峡市| 余庆县| 松潘县| 海伦市| 托克逊县| 易门县| 江孜县| 汾阳市| 尚义县| 香格里拉县| 成安县| 莲花县| 连山| 彭州市| 都兰县| 乡城县| 金阳县| 尚志市| 梓潼县| 黄大仙区| 阿合奇县| 定安县| 郧西县| 大姚县| 孟津县| 嘉黎县| 玉龙| 信丰县| 永善县| 英吉沙县| 明水县| 凤阳县|