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

Vue3之toRefs和toRef在reactive中的一些應(yīng)用方式

 更新時間:2024年03月18日 10:06:27   作者:小饅頭學(xué)python  
這篇文章主要介紹了Vue3之toRefs和toRef在reactive中的一些應(yīng)用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

回顧響應(yīng)式對象

在介紹知識點(diǎn)之前,我們準(zhǔn)備好初始代碼

<template>
<h2>姓名:{{ person.name }}</h2>
<h2>姓名:{{ person.age }}</h2>
<button @click="change_name">修改名字</button>
<button @click="change_age"></button>
 </template>
 
 <script lang="ts" setup name="Person11">
  import {reactive} from 'vue'
  
 let person = reactive({
  name:'饅頭',
  age:22
 })
 function change_name(){
  person.name += '*'
 }

 function change_age(){
  person.age += 1
 }

 </script>
 
 <style scoped>
   .person {
     background-color: skyblue;
     box-shadow: 0 0 10px;
     border-radius: 10px;
     padding: 20px;
   }
   button {
     margin: 0 5px;
   }
 </style>

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

請?zhí)砑訄D片描述

是否和你想的一樣呢,我們使用了reactive進(jìn)行創(chuàng)建響應(yīng)式對象

接下來我們對person進(jìn)行解構(gòu)賦值

或許有些人不太理解解構(gòu)賦值,我從網(wǎng)上找了一段話

  • 解構(gòu)賦值是 JavaScript 中一種方便的語法,用于從數(shù)組或?qū)ο笾刑崛?shù)據(jù)并賦值給變量。通過解構(gòu)賦值,可以輕松地提取數(shù)組中的元素或?qū)ο笾械膶傩?,使代碼更簡潔易讀。
  • 它還可以嵌套使用,處理復(fù)雜的數(shù)據(jù)結(jié)構(gòu),但要注意避免過度解構(gòu),以保持代碼的可讀性。

接下來我們看看代碼中如何操作,只需在數(shù)據(jù)下面加一行

let {name,age} = person

接下來我們修改方法中的部分代碼

//原代碼
function change_name(){
          person.name += '*'
        }

        function change_age(){
          person.age += 1
        }
//修改之后的代碼
function change_name(){
          name += '*'
        }

        function change_age(){
          age += 1
        }

這樣我們的頁面是否還會響應(yīng)呢,答案是不可以

請?zhí)砑訄D片描述

如果我們再修改模板里面的內(nèi)容呢

<h2>姓名:{{ name }}</h2>
<h2>姓名:{{ age }}</h2>

答案也是不更新的,但是數(shù)據(jù)究竟改沒改呢,我們打印一下

function change_name(){
          name += '*'
          console.log(name)
        }

        function change_age(){
          age += 1
          console.log(age)
        }

控制臺結(jié)果顯示如下,所以說是改了的

接下來我們解釋一下

let {name,age} = person

上面這行代碼和下面兩行代碼其實(shí)是等價的

let name=person.name
let age=person.age

同時我們要明確一點(diǎn),下圖的數(shù)據(jù)是響應(yīng)式的

但是我們解構(gòu)后相當(dāng)于自己重新定義了一個對象name和age,然后person.name和person.age是不變的

多說無益,我們測試一下叭

function change_name(){
          name += '*'
          console.log(name, person.name)
        }

結(jié)果顯然了叭,結(jié)論就是:響應(yīng)式對象解構(gòu)出的并非是響應(yīng)式對象

介紹toRefs

承接上個標(biāo)題,我們?nèi)绻胍獙⒔鈽?gòu)的對象變?yōu)轫憫?yīng)式的,我們應(yīng)該怎么做呢,只需要import一個toRefs

import {reactive,toRefs} from 'vue'

同時我們再將解構(gòu)的person包裹一下toRefs

let {name,age} = toRefs(person)

這樣的意思就是,將解構(gòu)的數(shù)據(jù)變?yōu)镽ef定義的響應(yīng)式對象,將reactive對象變?yōu)镽ef對象

接下來我們改一下方法

function change_name(){
          name.value += '*'
          console.log(name, person.name)
        }

        function change_age(){
          age.value += 1
          console.log(age)
        }

這樣我們再測試一下

請?zhí)砑訄D片描述

介紹toRef(不常用)

toRef和toRefs是 Vue3 中用于處理響應(yīng)式對象的兩個函數(shù),它們有一些重要的區(qū)別

toRef:    

  • 參數(shù):接收一個響應(yīng)式對象和一個屬性名,返回一個 ref 對象,指向該屬性的值。
  • 用途:主要用于將單個屬性轉(zhuǎn)換為 ref 對象,使得該屬性的值能夠被響應(yīng)式地跟蹤。

toRefs:

  • 參數(shù):接收一個響應(yīng)式對象,返回一個包含該對象所有屬性的 ref 對象。
  • 用途:常用于在組件中將 props 轉(zhuǎn)換為響應(yīng)式對象,或者在 setup 函數(shù)中處理響應(yīng)式對象的多個屬性。

總的來說,toRef用于處理單個屬性,將其轉(zhuǎn)換為 ref 對象,而toRefs用于處理整個對象,將對象的所有屬性都轉(zhuǎn)換為 ref 對象

總結(jié)

本節(jié)介紹了一下toRefs和toRef,同時回憶了一下reactive

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何利用vue展示.docx文件、excel文件和csv文件內(nèi)容

    如何利用vue展示.docx文件、excel文件和csv文件內(nèi)容

    最近遇到了一些新的需求,需要前端實(shí)現(xiàn)文件預(yù)覽功能,下面這篇文章主要給大家介紹了關(guān)于如何利用vue展示.docx文件、excel文件和csv文件內(nèi)容的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • VueJs打包之后遇到的坑及解決

    VueJs打包之后遇到的坑及解決

    這篇文章主要介紹了VueJs打包之后遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue實(shí)現(xiàn)點(diǎn)擊圖片放大顯示功能

    Vue實(shí)現(xiàn)點(diǎn)擊圖片放大顯示功能

    這篇文章主要為大家詳細(xì)介紹了如何利用Vue實(shí)現(xiàn)點(diǎn)擊圖片放大顯示功能,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的可以了解一下
    2023-03-03
  • 在vue-cli腳手架中配置一個vue-router前端路由

    在vue-cli腳手架中配置一個vue-router前端路由

    這篇文章主要給大家介紹了在vue-cli腳手架中配置一個vue-router前端路由的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • ant design vue中日期選擇框混合時間選擇器的用法說明

    ant design vue中日期選擇框混合時間選擇器的用法說明

    這篇文章主要介紹了ant design vue中日期選擇框混合時間選擇器的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 淺談Vue組件單元測試究竟測試什么

    淺談Vue組件單元測試究竟測試什么

    這篇文章主要介紹了淺談Vue組件單元測試究竟測試什么,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • vue-cli3.0修改打包后的文件名和文件地址,打包后本地運(yùn)行報錯解決

    vue-cli3.0修改打包后的文件名和文件地址,打包后本地運(yùn)行報錯解決

    這篇文章主要介紹了vue-cli3.0修改打包后的文件名和文件地址,打包后本地運(yùn)行報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue實(shí)現(xiàn)表格數(shù)據(jù)的增刪改查

    vue實(shí)現(xiàn)表格數(shù)據(jù)的增刪改查

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)表格數(shù)據(jù)的增刪改查,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 關(guān)于axios如何全局注冊淺析

    關(guān)于axios如何全局注冊淺析

    這篇文章主要給大家介紹了關(guān)于axios如何全局注冊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用axios具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • Vue使用lodop實(shí)現(xiàn)打印小結(jié)

    Vue使用lodop實(shí)現(xiàn)打印小結(jié)

    這篇文章主要介紹了Vue使用lodop打印小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論

福安市| 青川县| 洛隆县| 都兰县| 扎兰屯市| 琼中| 郓城县| 六盘水市| 额济纳旗| 福泉市| 津南区| 滨海县| 呈贡县| 梁山县| 合川市| 祥云县| 香格里拉县| 沾化县| 鹤岗市| 浦城县| 建德市| 宜兴市| 阿巴嘎旗| 塔河县| 吉林市| 伊金霍洛旗| 永安市| 木兰县| 阿坝| 施甸县| 远安县| 新巴尔虎右旗| 瑞安市| 阳曲县| 宽城| 南投市| 荔波县| 启东市| 都江堰市| 德安县| 弥渡县|