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

Vue3之toRefs和toRef在reactive中的一些應用方式

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

回顧響應式對象

在介紹知識點之前,我們準備好初始代碼

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

運行結果如下

請?zhí)砑訄D片描述

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

接下來我們對person進行解構賦值

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

  • 解構賦值是 JavaScript 中一種方便的語法,用于從數(shù)組或對象中提取數(shù)據(jù)并賦值給變量。通過解構賦值,可以輕松地提取數(shù)組中的元素或對象中的屬性,使代碼更簡潔易讀。
  • 它還可以嵌套使用,處理復雜的數(shù)據(jù)結構,但要注意避免過度解構,以保持代碼的可讀性。

接下來我們看看代碼中如何操作,只需在數(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
        }

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

請?zhí)砑訄D片描述

如果我們再修改模板里面的內容呢

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

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

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

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

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

接下來我們解釋一下

let {name,age} = person

上面這行代碼和下面兩行代碼其實是等價的

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

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

但是我們解構后相當于自己重新定義了一個對象name和age,然后person.name和person.age是不變的

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

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

結果顯然了叭,結論就是:響應式對象解構出的并非是響應式對象

介紹toRefs

承接上個標題,我們如果想要將解構的對象變?yōu)轫憫降?,我們應該怎么做呢,只需要import一個toRefs

import {reactive,toRefs} from 'vue'

同時我們再將解構的person包裹一下toRefs

let {name,age} = toRefs(person)

這樣的意思就是,將解構的數(shù)據(jù)變?yōu)镽ef定義的響應式對象,將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 中用于處理響應式對象的兩個函數(shù),它們有一些重要的區(qū)別

toRef:    

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

toRefs:

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

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

總結

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

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

相關文章

  • 如何利用vue展示.docx文件、excel文件和csv文件內容

    如何利用vue展示.docx文件、excel文件和csv文件內容

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    關于axios如何全局注冊淺析

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

    Vue使用lodop實現(xiàn)打印小結

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

最新評論

丹寨县| 修武县| 同江市| 双峰县| 静乐县| 松原市| 乌海市| 宣恩县| 秀山| 额济纳旗| 聂荣县| 珠海市| 台东市| 溧阳市| 北票市| 宜昌市| 阳江市| 靖边县| 常德市| 黄石市| 定南县| 长汀县| 霞浦县| 那坡县| 郴州市| 崇阳县| 诏安县| 滨州市| 哈尔滨市| 景洪市| 盐津县| 岳阳市| 扬中市| 肥乡县| 玉山县| 桃园市| 海门市| 湘潭市| 乌恰县| 苏尼特右旗| 香河县|